0

GridView で使用できる asp:HiddenField はありません。

これが必要な理由は、OnRowCommand をトリガーする ButtonField があるからです。そこから、選択された行を特定できますが、ButtonField からテキスト値を取得して、それにバインドされたデータを (DataTextField を介して) 確認することはできません。

これに対する私の解決策は、BoundField を用意し、代わりにそこからテキスト値を取得することでした。どの行が選択されているかは既にわかっていたからです。これは機能しましたが、非表示にする必要があります。

誰かが TemplateField 内にネストされた HiddenField を使用することを提案しましたが、その HiddenField からテキスト値を取得するのに問題がありました。HiddenField のテキスト値を取得するために TemplateField 内のコントロールにアクセスする方法はありますか?

誰かが代替案について何か提案があれば、それも素晴らしいでしょう。

ありがとう、
マット

4

3 に答える 3

2

commandArgumentがレコード/行のIDと等しいテンプレートフィールドを使用できます。

<ItemTemplate>
  <asp:Button ID="Button1" runat="server" CausesValidation="false" 
      CommandName="SomeCommand" Text="Button" CommandArgument='<%# Eval("SomeID") %'></asp:LinkButton>
</ItemTemplate>

次に、行コマンド処理イベントで、e.CommandArgumentによってその値を取得できます。

于 2009-07-06T15:40:16.267 に答える
1

GridviewのDataKeyNamesプロパティを使用できます。

gridView.DataKeyNames = { "values", "you", "want "};

そして、あなたはこのようにそれらにアクセスすることができます:

gridView.DataKeys[rowId].Values["value"];
于 2009-07-06T15:33:20.380 に答える
0

レコード(行)の一意の代表として、別のID列を追加することは可能ですか?その特定のID列は、非表示にするためにstyle:display = noneで設定できますが、それでもIDはHTMLフォーム内にあります。

次に、その特定のID列の値を取得して、さらに処理することができます。

お役に立てれば、

ハディ

于 2009-07-06T15:31:05.500 に答える