- PR -

マスターページとJAVASCRIPTでSelectedIndexChangingのイベントが発生しない

1
投稿者投稿内容
じゃらん
常連さん
会議室デビュー日: 2007/06/27
投稿数: 32
投稿日時: 2007-08-28 12:42
お世話になります。

以前、"GRIDVIEWのページングとJAVASCRIPT"の中でご質問させて頂いたのですがレスがつかなかったので
、分離し改めて質問させて下さい。

マスターページを使用しContentPlaceHolder内にGRIDVIEWを配置した時、SelectedIndexChangingのイベン
トが発生しないのですが原因がわかりません。
マスターページを使用しない場合は正常に動作(選択された行に色がつく)するのですが....

スクリプトコードのfunction関数内にアラートを設け渡されてくる値は確認済みです。又、マスターペー
ジを使用しない場合とスクリプトコードを比較してみた場合の相違点は
異常 正常
 1.formidがaspnetForm formidがGRIDVIEW
2.gridViewIdの値がctl00_ContentPlaceHolder1_GridView1 gridViewIdの値がGridView1
3.tableの前後に余計な<DIV>タグがある。 タグなし
です。

環境
ASP.NET 2.0
VB.NET
IE6.0
WIN XP SP2

以下長くなりますが各コードを記載します。ヒントあるいはヒントになるようなホームページ等ありまし
たら宜しくお願いします。

■ASP.NETコード

Protected Sub GridView1_RowCreated(ByVal sender As Object, _
ByVal e As

System.Web.UI.WebControls.GridViewRowEventArgs) _
Handles GridView1.RowCreated

If Not e.Row.RowType = DataControlRowType.DataRow Then
Exit Sub
End If

Dim clickEvent As String = _
String.Format("SelectedRow('{0}', '{1}')", _
e.Row.RowIndex, _
Me.GridView1.ClientID)

e.Row.Attributes.Add("onclick", clickEvent)

End Sub

■スクリプトコード

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>
Untitled Page
</title>
<script type="text/javascript" language="javascript">

function SelectedRow(rowNum, gridViewId)
{
alert("Button !" + rowNum);
alert("Click !" + gridViewId);
__doPostBack(gridViewId, 'Select$' + rowNum);
}

</script>
</head>
<body>
<form name="aspnetForm" method="post" action="Default2.aspx" id="aspnetForm">
<div>
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"

value="qoJ6kltcDil/HyFlNY4uqS/o8HH7YT8nRpDDYCEPVFnfgsB221Aujl43AAnkX8fOQ0I2bAe7VsVPFdBufl1XtUE
aV8ozVfkUwdmgf3ChEMPdB48sX0l+gdV2wwxPiQnK1qj+j/7qdx8ySaz9dgIQz8qhgFg1X1dRPPDlJtXGuH9ogd8vLINpZ
NvBGAcu71HVyrZ8IE39FLthwROYW337U6Orz+9hYGXJHbYASeMc9lgjypRDzlcNB37hW66jIbBUxle+KXYYUyHZVpe232W
OS/5KWQDjZY0HZfu7LZXqFl+utR3x+s4s9kfYKvi6ltkYXfHPPP9WjZon0wgl3Xk2C9fKxC9RZcuAzvtas0Fh9H/awpzZk
a3yNnR3L2uv3nU9Xbdlwceit1HRJ9mc2SqMszxwxi7XmLtw5zaxcz5S2RcN62PA7rPH+RSFc2zXZmiUgS1SrlUVx07gq1P
zeM6wswEkvvKzyM6gviYtk6gQW5fA+VVfCizE+ZQndYj9aeLjnEh/jY8m3+UJ2AKHr4tPJAeggaDWSbh8o/KKGAxpgTv03
az+2qyibfaN+tEp+oGlgZ04CehgJrOB6BgMUPjzAw==" />
</div>

<script type="text/javascript">
<!--
var theForm = document.forms['aspnetForm'];
if (!theForm) {
theForm = document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
// -->
</script>
<div>

<div>
<table cellspacing="0" cellpadding="4" border="0"

id="ctl00_ContentPlaceHolder1_GridView1" style="color:#333333;border-collapse:collapse;">
<tr style="color:White;background-color:#507CD1;font-weight:bold;">
<th scope="col">&nbsp;</th><th scope="col">sid</th><th

scope="col">uname</th>
</tr><tr onclick="SelectedRow('0', 'ctl00_ContentPlaceHolder1_GridView1')"

style="background-color:#EFF3FB;">
<td><a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1

$GridView1','Select$0')" style="color:#333333;"></a></td><td>XXXXXXXX</td><td>XXXX</td>
</tr><tr onclick="SelectedRow('1', 'ctl00_ContentPlaceHolder1_GridView1')"

style="background-color:White;">
<td><a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1

$GridView1','Select$1')" style="color:#333333;"></a></td><td>XXXXXXXX</td><td>XXXX</td>
</tr><tr onclick="SelectedRow('2', 'ctl00_ContentPlaceHolder1_GridView1')"

style="background-color:#EFF3FB;">
<td><a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1

$GridView1','Select$2')" style="color:#333333;"></a></td><td>XXXXXXXX</td><td>XXXX</td>
</tr><tr onclick="SelectedRow('3', 'ctl00_ContentPlaceHolder1_GridView1')"

style="background-color:White;">
<td><a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1

$GridView1','Select$3')" style="color:#333333;"></a></td><td>XXXXXXXX</td><td>XXXX</td>
</tr><tr align="center" style="color:White;background-color:#2461BF;">
<td colspan="3"><table border="0">
<tr>
<td><span>1</span></td><td><a

href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$GridView1','Page$2')"

style="color:White;">2</a></td><td><a href="javascript:__doPostBack('ctl00$ContentPlaceHolder
1$GridView1','Page$3')" style="color:White;">3</a></td><td><a href="javascript:__doPostBack

('ctl00$ContentPlaceHolder1$GridView1','Page$4')" style="color:White;">4</a></td>
</tr>
</table></td>
</tr>
</table>
  </div>

</div>
<div>
<input type="hidden" name="__VIEWSTATEENCRYPTED" id="__VIEWSTATEENCRYPTED" value="" />
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION"

value="AW4yd71Ig8hMuMZQz5/M+fhC2SR0fLXFZ3ZZPTA4EQ9j1JnQUwpAINBMeeRJbFtE2FW3u0S4R5PPIc/zrc2smw==" />
</div>
</form>
</body>
</html>
1

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