GridView--選択行

3480 ワード

原理:
GridViewのデフォルトで生成された選択をクリックして、編集し、ボタンを削除すると、postbackパラメータが発生します.ソースコードを確認できます.
<td>

<a href="javascript:__doPostBack('ctl00$cp$GvDeparments','Edit$0')">  </a>

<a href="javascript:__doPostBack('ctl00$cp$GvDeparments','Delete$0')">  </a>

<a href="javascript:__doPostBack('ctl00$cp$GvDeparments','Select$0')">  </a>

</td>



<td>

<a href="javascript:__doPostBack('ctl00$cp$GvDeparments','Edit$1')">  </a>

<a href="javascript:__doPostBack('ctl00$cp$GvDeparments','Delete$1')">  </a>

<a href="javascript:__doPostBack('ctl00$cp$GvDeparments','Select$1')">  </a>

</td>
  :
function __doPostBack(eventTarget, eventArgument) {

    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {

        theForm.__EVENTTARGET.value = eventTarget;

        theForm.__EVENTARGUMENT.value = eventArgument;

        theForm.submit();

    }

}
 
これはasp.netの内蔵関数です.
      Edit$,Delete$,Select$      .    :
       GridView RowDataBound     .
コード
if (e.Row.RowType == DataControlRowType.DataRow)

{

    e.Row.Attributes["onclick"] = "javascript:__doPostBack('" + GvDeparments.ClientID.Replace('_', '$') + "','Select$" + e.Row.RowIndex + "')";

}
ソースファイル
<tr onclick="javascript:__doPostBack('ctl00$cp$GvDeparments','Select$3')">

...

</tr>
 
コード
if (e.Row.RowType == DataControlRowType.DataRow)

{

     e.Row.Attributes["onclick"] = ClientScript.GetPostBackClientHyperlink(this.GvDeparments, "Select$" + e.Row.RowIndex);

}
ソースファイル
<tr onclick="javascript:__doPostBack('ctl00$cp$GvDeparments','Select$3')">

...

</tr>
 
コード
if (e.Row.RowType == DataControlRowType.DataRow)

{

    e.Row.Attributes["onclick"] = ClientScript.GetPostBackEventReference(this.GvDeparments, "Select$" + e.Row.RowIndex);



}
ソースファイル
<tr onclick="__doPostBack('ctl00$cp$GvDeparments','Select$3')">

...

</tr>
 
注意ソースコードのonclickイベントを確認してください.