2009-07-06 26 views
0

GridViewで使用できるasp:HiddenFieldがないので、これと同じように動作するのだろうかと思っていました。GridViewのasp:HiddenFieldの等価性

私が推論する理由は、私がOnRowCommandをトリガーするButtonFieldを持っていることです。そこから、どの行が選択されたのかわかりますが、(DataTextFieldを介して)それにバインドされたデータを見るためにButtonFieldからテキスト値を取得することはできません。

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

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

他にも優れた選択肢がある場合は、

おかげで、

マット

答えて

1

あなたは、GridViewの上DataKeyNamesプロパティを使用することができます。

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

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

gridView.DataKeys[rowId].Values["value"]; 
0

レコード(行)のためのユニークな代表として、他のIDの列を追加することが可能ですか?その特定のID列は、style:display = noneで設定して非表示にすることができますが、IDはHTML形式の中にあります。

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

希望、

ハディは

2

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

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

その後、イベントを処理する行のコマンドであなたはe.CommandArgument

によってその値を得ることができます