我有GridView和模板列。在模板列中我有asp:hiddenfield。我使用Eval()方法绑定值。当我尝试访问hiddenfi的值不可访问时,可见性为false 的 ASPX
<asp:TemplateField HeaderText="Select" Visible="false">
<ItemTemplate>
<asp:HiddenField ID="hdnMasterId" runat="server"
Value='<%# DataBinder.Eval(Container.DataItem, "Master_Id") %>' />
<asp:CheckBox ID="chkDelete" runat="server" />
</ItemTemplate>
<ItemStyle Width="4%" HorizontalAlign="Center"></ItemStyle>
<HeaderStyle HorizontalAlign="Center" />
</asp:TemplateField>
代码背后
protected void gdvList_RowCommand(object sender, GridViewCommandEventArgs e)
{
int intIndex = Convert.ToInt32(e.CommandArgument);
GridViewRow row = gdvList.Rows[intIndex];
HiddenField hdn = (HiddenField)row.FindControl("hdnMasterId");
}
答案 0 :(得分:1)
如果在列上设置visibility =“false”,它将不会生成任何html,因此不会有隐藏控件。您需要将隐藏字段放在别处或者用css / style隐藏列。
答案 1 :(得分:0)
您可以尝试:
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
string strValue = ((HiddenField)GridView1.SelectedRow.Cells[cellindex].FindControl("HiddenFieldID")).Value;
}