【问题标题】:Hidden Field Value not finding value隐藏字段值未找到值
【发布时间】:2016-04-24 16:29:10
【问题描述】:

我的 gridview 中有一个 hiddenfield 字段,但后面的代码无法获得它的值,也许有人会发现问题。
HTML:

<asp:TemplateField HeaderText="TweetID" Visible="false">
<ItemTemplate>
<asp:HiddenField ID="TweetID" runat="server" Value='<%#Eval("TweetID") %>' />
</ItemTemplate>
</asp:TemplateField>

.cs:

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
    int index = Convert.ToInt32(e.RowIndex);
    HiddenField tid = GridView1.Rows[index].FindControl("TweetID") as HiddenField;
    //Response.Write(tid.Value);
    TweetHelper.RemoveTweet( Convert.ToInt32(tid.Value), 1);
}

顺便说一句,响应什么也没写。

【问题讨论】:

  • 我测试了你的代码,它工作正常。我在代码隐藏中得到了 HiddenField 及其值。 “响应什么也没写”是什么意思?回发后数据绑定控件是否为空? HiddenField 值是否为空?
  • 我不知道它对我不起作用,我在另一个 gridview 上测试了它,它工作了,也许我的 gridview 在某个地方有问题,但我现在已经修复了,谢谢。

标签: c# asp.net gridview webforms hiddenfield


【解决方案1】:

根据您上面的代码,您正在做的是矫枉过正。

要么将TweetID 设为 Gridview.DataKey。

或者,如果这不是一个选项,请将您的 Delete 按钮转换为模板字段,并将 TweetID 作为 CommandArgument 添加到 Delete 按钮。

【讨论】:

    【解决方案2】:

    您的代码应该可以正常工作。但是另一种查找控件的方法是

    GridViewRow row = GridView1.Rows[e.RowIndex];
    HiddenField hdn = (HiddenField)row.FindControl("TweetID");
    string value = hdn.Value;
    

    或者干脆

    var tweetid = ((HiddenField)GridView1.Rows[e.RowIndex].FindControl("TweetID")).Value;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-06
      • 2013-09-03
      相关资源
      最近更新 更多