いつも拝見させていただいています。
今回asp.netで疑問が生じたため投稿させていただきました。
【問題点】
gridviewにlinkbuttonを配置し、javascriptでlinkbuttonがクリックされた
行番号を取得したいと考えています。
linkbuttonはitem templateに入れているので、RowCreateで
動的に行番号を付与しています。
下記ソースのshowGroupメソッド内でlinkbuttonがクリックされた際に
その行番号取得を試みていますが、どうもうまく取得できないでいます。
行番号の取得方法について何かアドバイスを頂けないでしょうか。
よろしくお願いします。
【ソース】
vb
1Protected Sub GridView1_RowCreated(sender As Object, e As GridViewRowEventArgs) Handles GridView1.RowCreated 2 3 If e.Row.RowType = DataControlRowType.DataRow Then 4 'グリッドビュー作成時に行番号を仕込む 5 Dim lnkBtn_Search As LinkButton = CType(e.Row.FindControl("lnkBtnExchangeDate_Search"), LinkButton) 6 lnkBtn_Search.CommandArgument = e.Row.RowIndex.ToString 7 End If 8 End Sub
aspx
1<asp:GridView ID="GridView1" runat="server"> 2 <Columns> 3 <asp:TemplateField HeaderText="グループ名"> 4 <ItemTemplate> 5 <asp:LinkButton ID="lnkBtn_Search" Text='<%# Bind("GroupName") %>' runat="server" OnClientClick="return showGroup();" CommandName="ShowGroup"></asp:LinkButton> 6 </ItemTemplate> 7 <ItemStyle Width="150px" Font-Size="11" /> 8 </asp:TemplateField>
JavaScript
1function showGroup() { 2 var mordal = $find('BehaviorID_ShareGroup'); 3 mordal.show() 4 //document.getElementById("hfRecordIndex").value = ??? ←ここでhiddenに行番号を渡したい 5 document.getElementById("btnGetGridData_ShareGroup").click(); //隠しボタンを押下してクリックイベント発生 6 return false; 7}
【追記:実装したい処理について】
〇処理の全体像について
GridView1ではあるグループ情報を表示しています。
具体的にはグループ名、グループ概要、グループ作成日時、グループ作成者を表示しており、
グループ名がリンクボタンとなっております。
実装したい処理としては、このグループ名をクリックしたときモーダルウィンドウで
グループに所属しているメンバー一覧を表示したいと考えています。
そこで下記のような処理を実装したいと考えております。
1)グリッドビューのリンクボタンをクリックする
2)モーダルを表示、またhiddenに行番号を格納
3)隠しボタンを押下してクリックイベントを発生させサーバーの処理へ
4)サーバー側ではhiddenに格納した行番号を利用して
押下したグループ名をキーにメンバーを取得
※JavaScript中のbtnGetGridData_ShareGroupはモーダルに仕掛けた隠しボタンで
これjavascriptで押下することでイベントを発生させております。
【開発環境】
IDE:visual studio 2015 pro
言語:vb.net(web form)
回答2件
あなたの回答
tips
プレビュー