- PR -

aspxのJavaScriptでGridViewを取得する

投稿者投稿内容
apo
常連さん
会議室デビュー日: 2008/11/10
投稿数: 27
投稿日時: 2009-01-23 10:55
.netで言語はVBでの開発をしていますが、
aspx画面で、
GridView
ID : Grid
の中にある以下のボタン─編集、削除─を押下したときに
OnClientClickイベントで
messageFunc(mode)のJavaScriptを実行しています。

このときに、GridViewのボタンがあるセルの中にあるhiddenテキストボックス
*ID : hiddenField

の値を取得したいのですが、GridView自体が取得できません。
以下がそのソースになります。

GridViewの設定は・・・
<asp:GridView Width="1115" ID="grvw" runat="server" AllowPaging="True"
AutoGenerateColumns="False" GridLines="Vertical" BorderStyle="Solid" BorderColor="Black"
BorderWidth="1px" CellPadding="0" >

10列目のセルにボタン二個、hiddenが一個あります・・・
<asp:TemplateField HeaderText="修正/削除" InsertVisible="False" SortExpression="indexBtn">
<ItemTemplate>

※編集ボタンの記述↓
<asp:Button ID="EditButton" runat="server" CausesValidation="False" CommandName="Edit" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "indexBtn") %>' OnClientClick="Javascript:retVal=messageFunc('E',9);" Text="編集" CssClass="Button_mini" UseSubmitBehavior="true" />
&nbsp;
※削除ボタンの記述↓
<asp:Button ID="DeleteButton" runat="server" CausesValidation="False"
CommandName="Delete" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "indexBtn") %>' OnClientClick="Javascript:retVal=messageFunc('D',9);"
Text="削除"
CssClass="Button_mini" UseSubmitBehavior="true" />
※隠しフィールドの記述↓
<asp:HiddenField ID="hiddenField" runat="server" Value='<%# DataBinder.Eval(Container.DataItem, "mode") %>' />
</ItemTemplate>
<HeaderStyle BorderColor="Black" BorderWidth="1px" HorizontalAlign="Center"
VerticalAlign="Middle"/>
<ItemStyle BorderColor="Black" BorderWidth="1px" HorizontalAlign="Center"
VerticalAlign="Middle" Width="120" BackColor="White" />
</asp:TemplateField>
レイル
常連さん
会議室デビュー日: 2008/10/14
投稿数: 37
投稿日時: 2009-01-23 13:32
実行した画面のソース内を見てみるとIDが書いてありませんか?
サーバ側でスクリプトを吐き出しているのであれば、引数にDataGirdView.ClientIDを渡してあげれば宜しいかと思います。
apo
常連さん
会議室デビュー日: 2008/11/10
投稿数: 27
投稿日時: 2009-01-23 13:48
IDで取得してみても取れません。
getElementByIDでは取れませんでした。

var obj = document.getElementById(Idの名前);

中身がNULLになってぃます。

hiddenのテキストボックスの値も取れませんでした。
まるく
大ベテラン
会議室デビュー日: 2004/01/09
投稿数: 181
投稿日時: 2009-01-23 14:44
引用:

apoさんの書き込み (2009-01-23 13:48) より:
IDで取得してみても取れません。
getElementByIDでは取れませんでした。

var obj = document.getElementById(Idの名前);

中身がNULLになってぃます。

hiddenのテキストボックスの値も取れませんでした。



ソース上は"grvw"になってて、
スレ立てた時の質問では
ID: Grid
ってなってますけど。
apo
常連さん
会議室デビュー日: 2008/11/10
投稿数: 27
投稿日時: 2009-01-23 15:06
IDは、grvwです。

実際にはIDは正しいものを使用しています。
idの間違いはありません。

GridViewのひとつのセルの中にボタン二個、hiddenFieldがひとつありますが、
その場合の hiddenFieldを取得する仕方はありますでしょうか?

var obj = document.getElementById("grvw");
obj.rows(2).cells(.
この後の書き方がわかりません。

cells(の中に、先ほどいったように三つコントロールがありますから。

ご教授お願いいたします。
King
ぬし
会議室デビュー日: 2008/06/20
投稿数: 284
投稿日時: 2009-01-23 15:36
> getElementByIDでは取れませんでした。
> var obj = document.getElementById(Idの名前);
> 中身がNULLになってぃます。

この問題は解決したんですか?
apo
常連さん
会議室デビュー日: 2008/11/10
投稿数: 27
投稿日時: 2009-01-23 15:51
GridViewは取得できています。でも、九行目のセルの中にあるhiddenFieldが取得できません。hiddenFieldのid名は、すべての行で同じになっていますので、行とセルの指定が必要です。その中に、
ボタン二個
隠しフィールドが一つあります。

[ メッセージ編集済み 編集者: apo 編集日時 2009-01-23 15:59 ]
108
常連さん
会議室デビュー日: 2007/12/12
投稿数: 45
投稿日時: 2009-01-23 16:36
引用:
hiddenFieldのid名は、すべての行で同じになっていますので


なっていますというか、同じにしているんですよね。
idが異なるよ

スキルアップ/キャリアアップ(JOB@IT)