【问题标题】:GridView Template Column hiddenfield value is always 0 while visibility falseGridView 模板列 hiddenfield 值始终为 0 而可见性为 false
【发布时间】:2012-03-14 05:53:04
【问题描述】:

我有带有模板列的 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");
}

【问题讨论】:

  • 你能添加你的代码吗?
  • @Mansoor Gee:-当我试图访问 hiddenfield 值时,它始终为空。

标签: asp.net


【解决方案1】:

如果你在一个列上设置 visibility="false" 它不会生成任何 html,因此不会有隐藏控件。您需要将隐藏字段放在其他地方或使用 css/style 隐藏列。

【讨论】:

  • :-谢谢回复...是否可以使用asp:Label控件获取Same?
  • 你是什么意思? Label 将转换为 div 标签,并且不会返回任何内容。
  • 我在模板列中添加了一个标签,它的可见性是错误的,现在将文本与 Master_Id 绑定。现在在 row_command 我得到文本值。
  • 我猜这是因为标签文本存储在 ViewState 中。如果您尝试使用 javascript 更改它,但您不会将更改返回到服务器。
【解决方案2】:

你可以试试:

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{

 string strValue = ((HiddenField)GridView1.SelectedRow.Cells[cellindex].FindControl("HiddenFieldID")).Value;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-12
    • 2023-04-05
    • 1970-01-01
    • 2020-07-25
    • 2013-05-08
    • 2023-03-15
    • 2021-07-30
    • 1970-01-01
    相关资源
    最近更新 更多