ASP.NET (2.0) ドロップダウン リストの変更イベントが jQuery によって処理されるときに、jQuery を使用してメソッドをトリガーしようとしています。問題は、ドロップダウン リストが gridview 内にあり、ユーザーがその gridview 内の行を編集することを決定した場合にのみ配置されることです。
ASPコードブロックを使用してオブジェクトを取得したと思いますが、問題は、ページが最初にロードされたときに行の編集インデックスが存在せず、エラーがスローされることです。ステートメント内にブロックを配置してIF
も機能しません。
$(document).ready(function() //when DOM is ready, run containing code
{
<% if (grvTimeSheets.EditIndex > -1) {%>
$(#<%=grvTimeSheets.Rows[grvTimeSheets.EditIndex].FindControl("ddlClients").ClientID %>).change(function() {
$(#<%= grvTimeSheets.ClientID %>).block({ message: null }
});
}
);
<% } %>
これは私が行った 1 つの試みであり、IF ステートメントの ASP コードを JavaScript ブロックの外側に配置することも試みました。それもうまくいきません。
jQuery イベントをドロップ ドロップ ボックスに適用するにはどうすればよいですか? できるだけ簡潔にするのが理想的です。
答えてくれてありがとう、いいえ、うまくいきません:(。JavaScriptコードが出力されていないようです...紛らわしい...
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.tablesorter.js"></script>
<script type="text/javascript" src="jquery.blockUI.js"></script>
<script type="text/javascript">
$(document).ready(function() //When DOM is ready, run the containing code
{
}
);
</script>
出力です。これはコードですが:
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.tablesorter.js"></script>
<script type="text/javascript" src="jquery.blockUI.js"></script>
<script type="text/javascript">
$(document).ready(function() //when DOM is ready, run containing code
{<% if (grvTimeSheets.EditIndex > -1) {%>
var id = '#<%=grvTimeSheets.Rows[grvTimeSheets.EditIndex].FindControl("ddlClients").ClientID %>';
$(id).change(function() {
$(id).block({ message: null }
});
<% } %>
}
);
</script>
以前もそうしていたので、私はクレイジーになりました。
すみません、もう少しわかりやすくお願いします。コードビハインドで全体を次のように定義しようとしました:
DropDownList ddl (DropDownList)grvTimeSheets.Rows[grvTimeSheets.EditIndex].FindControl("ddlClients");
if (ddl != null)
{
ClientScriptManager csm = Page.ClientScript;
Type cstype = this.GetType();
String csname1 = "PopupScript";
string script = @"
<script language='javascript' type='text/javascript'>
$(#" + ddl.ClientID + ").change(function() { $(" + grvTimeSheets.ClientID + ").blockUI({ message: null }});} </script>";
csm.RegisterStartupScript(cstype, csname1, script, true);
}
そうですか?
ところで、上記は機能しませんでした。エラーはありません。イベントが機能しませんでした。