c#
  • asp.net
  • gridview
  • webforms
  • hiddenfield
  • 2016-04-24 9 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

    あるfine.However動作するはずです。

    いずれかをTweetIDにGridview.DataKeyとします。

    それともそれはオプションではない場合、あなたのDeleteボタンは、テンプレートのフィールドに変換し、DeleteボタンにCommandArgumentとしてTweetIDを追加します。

    +0

    私はそれが動作するデータキーを使用しました。 – Rokni

    0

    あなたのコードでは、コントロールを見つけるための別の方法は、何をやっていることは行き過ぎである以上、あなたのコードに基づいて

    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

    関連する問題