Ich weiß, dass die Frage, die ich stellen werde, bereits von anderen Leuten verlangt wird, aber diese Antworten sind keine Lösung für mein Problem.Erhalten Sie Wert von versteckten Boundfield? ASP.NET
Ich habe eine Gridview mit 2 BoundFields, 2 ButtonFields und einem Kontrollkästchen (das ist ein TemplateField).
Ich habe auch eine Datentabelle, gefüllt mit Daten aus der Datenbank.
Im aspx-Code erstelle ich meine Gridview mit den Feldern, die das letzte BoundField Visible = false
setzen.
In meinem Codebehind, füge ich die Spalten hinzu und binde die Datenquelle an meine Datentabelle.
Aber wenn ich versuche, die Daten aus dem ausgeblendeten Randbereich zu lesen, ist dieses Feld leer. Das Problem, warum ich die genannten Lösungen nicht mit ähnlichen Fragen verwenden kann, liegt darin, dass die Leute annehmen, dass die Daten einzeln ausgefüllt werden, und nicht, indem sie eine Datentabelle an die Datenquelle der Gridview binden.
Also meine Frage ist: Ist es eine Möglichkeit, die Daten aus dem ausgeblendeten Randbereich zu erhalten und behalten Sie auch die Möglichkeit, die Daten hinzuzufügen, indem Sie die Datentabelle an die Datenquelle der Gridview binden? Und wenn ja, ist es möglich, den Wert von diesem Feld zu bekommen?
p.s. Ich verwende asp.net/c# in Visual Studio 2010
ASPX:
<asp:GridView ID="gvSelect" runat="server" AutoGenerateColumns="False" BorderStyle="None" onrowcommand="gvTestSelect_RowCommand">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox runat="server" ID="cbHeader" OnPreRender="cbHeader_PreRender" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox runat="server" ID="cbItems" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="field" HeaderText="Veld" SortExpression="field" />
<asp:ButtonField DataTextField="up" HeaderText="Omhoog" SortExpression="up" CommandName="up" Text="↑" />
<asp:ButtonField DataTextField="down" HeaderText="Omlaag" SortExpression="down" CommandName="down" Text="↓" />
<asp:BoundField DataField="hidden" SortExpression="hidden" />
</Columns>
</asp:GridView>
-Code Behind (wo ich das gridview füllen):
//create array list and fill it with all columns
Dictionary<string, string> dict = FillLists.getColumnsByTable(loader, ddlInfoTableI.SelectedItem.Value.ToString());
//loop trough dictionary
foreach (var val in dict)
{
//create new dtSelect datarow
DataRow dr = dtSelect.NewRow();
//set row values for column values
dr["select"] = false;
dr["field"] = val.Value.ToString();
dr["up"] = new ButtonField { CommandName = "up", Text = loader.LoadResourceString(1024), HeaderText = "↑", ButtonType = ButtonType.Button, Visible = true };
dr["down"] = new ButtonField { CommandName = "down", Text = loader.LoadResourceString(1025), HeaderText = "↓", ButtonType = ButtonType.Button, Visible = true };
dr["hidden"] = val.Key.ToString();
//add the datarow
dtSelect.Rows.Add(dr);
//set datatable session to datatable
Session["dtSelect"] = dtSelect;
//set datasource of the gridview to datatable
gvSelect.DataSource = dtSelect;
//bind data to gridview
gvSelect.DataBind();
}
So, jetzt muss ich die Daten aus der Gridview (besonders aus dem ausgeblendeten Randbereich), da sie die Gridview mit Ausnahme des ausgeblendeten Randbereichs bearbeiten können, so dass nur so die ursprüngliche Zeile erkannt werden kann.
Zeigen Sie uns Ihren Code. –
Wann und wie liest du? – V4Vendetta
** http: //stackoverflow.com/faq#howtoask** –