So che la domanda che sto per porre è già stata richiesta da altre persone, ma quelle risposte non sono una soluzione per il mio problema.Ottieni valore dal boundfield nascosto? ASP.NET
Ho un gridview contenente 2 BoundFields, 2 ButtonFields e un campo checkbox (che è un TemplateField).
Ho anche un datatable, pieno di dati dal database.
Nel codice aspx creo il mio gridview con i campi impostati l'ultimo BoundField Visible = false
.
Nel mio codebehind, aggiungo le colonne e associo l'origine dati al mio datatable.
Ma quando provo a leggere i dati dal campo nascosto, quel campo è vuoto. Il problema per cui non posso usare le soluzioni menzionate con domande simili è perché le persone presuppongono che i dati vengano riempiti uno per uno e non vincolando un datatable all'origine dati di gridview.
Quindi la mia domanda è: è un modo per ottenere i dati dal campo nascosto e conservare anche la possibilità di aggiungere i dati associando il datatable all'origine dati del gridview? E se sì, è possibile ottenere il valore da quel campo?
p.s. Sto utilizzando 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>
codice sottostante (dove riempio il gridview):
//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();
}
Così ora ho bisogno di ottenere il i dati di gridview (escorteticamente dal campo di delimitazione nascosto), perché possono modificare il gridview eccetto il campo di delimitazione nascosta, quindi questo è l'unico modo per sapere quale riga originale era.
Mostraci il tuo codice. –
Quando e come stai leggendo? – V4Vendetta
** http: //stackoverflow.com/faq#howtoask** –