私は Javascript(Jquery) がまったく初めてで、まだ ASP.NET の初心者です。gridview gvUsersを持つ contentpage があります。すべての行のマークアップに「id」を追加するイベントRowDataboundのコードを作成しました。その行はクリック可能であり、コンテンツページのページで JavaScript を介して選択できます。
<script src="http://code.jquery.com/jquery-1.8.3.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$('#<%=gvUsers.ClientID%> tr[id]').click(function() {
$('#<%=gvUsers.ClientID%> tr[id]').css({ "background-color": "White", "color": "Black" });
$(this).css({ "background-color": "Black", "color": "White" });
});
$('#<%=gvUsers.ClientID%> tr[id]').mouseover(function() {
$(this).css({ cursor: "hand", cursor: "pointer" });
});
});
$(function() {
var RowID = $('#hdnEmailID').val();
if (RowID != "0") {
$('#<%=gvUsers.ClientID%> tr[id=' + RowID + ']').css({ "background- color": "Black", "color": "White" });
}
$('#<%=gvUsers.ClientID%> tr[id]').click(function() {
$('#<%=gvUsers.ClientID%> tr[id]').css({ "background-color": "White", "color": "Black" });
$(this).css({ "background-color": "Black", "color": "White" });
$('#hdnEmailID').val($(this).attr("id"));
});
$('#<%=gvUsers.ClientID%> tr[id]').mouseover(function() {
$(this).css({ cursor: "hand", cursor: "pointer" });
});
});
</script>
これらのスクリプトでは、選択した行の「id」プロパティを取得し、hdnEmailIDに保存します ...
<INPUT id="hdnEmailID" type="hidden" value="0" runat="server" >
ページに表示される値hdnEmailIDを作成するために、このようなコードを持つボタン クリック イベント内にコードを作成しました。
Response.write(hdnEmailID.value);
最初は問題なく動作し、クリックした行の「id」が表示されますが、マスターコンテンツページでこのコードを使用した後、スクリプトは0を返します。そして、ボタンをクリックすると..マスターページがリロードされ、スクリプトもリロードされているように見えるため、デフォルトの0が返されます。 私はASP.NETの初心者なので、これが本当に起こったのかわかりません:)