隐藏字段值找不到值

Hidden Field Value not finding value

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

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

您的代码应该可以工作fine.However另一种查找控件的方法是

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;

根据您上面的代码,您所做的有点过分了。

要么将 TweetID 设为 Gridview.DataKey。

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