GridView模板列隐藏字段值始终为0,而​​可见性为false

时间:2012-03-14 05:53:04

标签: asp.net

我有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");
}

2 个答案:

答案 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;
}