当ASP.NET (2.0) 下拉列表的更改事件由 jQuery 处理时,我正在使用 jQuery 尝试触发方法。问题是下拉列表位于网格视图内,即使这样,只有当用户决定编辑该网格视图中的一行时。
我想我让它使用 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 }
});
}
);
<% } %>
这是我的一次尝试,我还尝试将 IF 语句 ASP 代码放在 JavaScript 块之外。它也不起作用。
如何将 jQuery 事件应用到 drop drop 框?理想情况下尽可能简洁。
感谢您的回答,但不,它不起作用:(。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);
}
这是你的意思吗?
顺便说一句,以上没有奏效。没有错误,只是没有任何事件起作用。