- - PR -
gridviewにてカスタムコントロールを作成
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-04-21 10:59
いつもお世話になっています。
gridviewの選択行についてご教授ください。 VS2005にてgridviewのカスタムコントロールを作成しています。 行がクリックされた場合やキーダウン時にjavascriptにて背景色を変更しています。 背景色変更時にポストバックをさせていないのでサーバ側で選択されている行を取得することができません。 どうにかして選択されている行を取得したいのですが、何かよい方法はないでしょうか? できればコントロールにプロパティを作成し、選択されている行を配列にできるとよいのですが・・・。 よろしくお願いします。 |
|
投稿日時: 2008-04-21 14:29
type="hidden"のinputタグを配置し、背景色を変更しているjavascriptに
選択行のインデックスをカンマ区切りの文字列にしその隠しフィールドのvalueに設定する処理を加えて、 ポストバック時にその隠しフィールドの文字列を読み取るというのはどうでしょう? |
|
投稿日時: 2008-04-21 15:11
ありがとうございます。
現状ですがGridViewのRenderにてtype="hidden"のinputタグを配置(追加)しています。 行が選択される度にjavascriptにて値を設定してあります。 実際、postbackが起きた場合にhidden自体が取得できません。 LoadPostData時にhiddenの値をプロパティに設定しようと思ったのですが GridViewではLoadPostDataは使用できないようですし・・・。 どうすればpostback時にhiddenコントロールの値を取得できるのでしょうか? よろしくお願いします。 |
|
投稿日時: 2008-04-21 15:31
<input type="hidden" name="id_list" runat="server" id="id_list" />
のようにrunatとid属性をタグに設定してやれば コードビハインドでも参照できます。 |
|
投稿日時: 2008-04-21 16:08
ありがとうございます。
うまくいきません。 GridViewのRenderですが、以下になります。 どこが悪いか指摘していただけないでしょうか? protected override void Render(System.Web.UI.HtmlTextWriter output) { // hiddenコントロール作成 output.AddAttribute(HtmlTextWriterAttribute.Name, "_id"); output.AddAttribute(HtmlTextWriterAttribute.Id, "_id"); output.AddAttribute(HtmlTextWriterAttribute.Type, "hidden"); output.AddAttribute(HtmlTextWriterAttribute.Value, ""); output.RenderBeginTag(HtmlTextWriterTag.Input); output.RenderEndTag(); // 出力先を独自のTextWriterとして出力する base.Render(new WriterWrapper(output, this)); } よろしくお願いします。 |
|
投稿日時: 2008-04-22 06:08
Hidden/HiddenFieldをダイナミックに追加しないで、デザイン時に定義しておいたらどうでしょうか。
<input id="Hidden1" type="hidden" runat="server" /> or <asp:HiddenField ID="HiddenField1" runat="server" /> _________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 |
|
投稿日時: 2008-04-22 11:13
ありがとうございます。
カスタムコントロールなのでなるべく、その中で完結したかったのですが やはりデザイン側で配置しておいてもらわないと難しいでしょうか? loadpostdata以外でサーバーにポストされる値を取得するものはないのでしょうか? よろしくお願いします。 [ メッセージ編集済み 編集者: ポッキー 編集日時 2008-04-24 11:42 ] |
1