c#
  • asp.net
  • gridview
  • webforms
  • hiddenfield
  • 2016-04-24 209 views 0 likes 
    0

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

    由響應寫什麼的方式。

    +0

    我測試了你的代碼,它工作正常。我在代碼隱藏中獲得了HiddenField及其值。你的意思是「迴應什麼都不寫」?回發後數據綁定控件是否爲空? HiddenField值是否爲空? – ConnorsFan

    +0

    我不知道它沒有爲我工作我測試了另一個gridview,它的工作也許我的gridview有問題的地方,但我現在修復它,謝謝你無論如何。 – Rokni

    回答

    0

    要麼使TweetID成爲Gridview.DataKey。

    或者,如果這不是一個選項,將您Delete按鈕模板領域,作爲CommandArgument添加TweetIDDelete按鈕。

    +0

    我使用了一個數據密鑰它的工作原理。 – Rokni

    0

    你的代碼應工作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; 
    
    +0

    這不適合我,但我找到了解決方案。 – Rokni

    相關問題