【发布时间】:2010-09-21 06:47:24
【问题描述】:
当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 }
});
}
);
<% } %>
这是我的一次尝试,我还尝试将 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);
}
这是你的意思吗?
顺便说一句,以上没有奏效。没有错误,只是没有任何事件起作用。
【问题讨论】:
-
我也喜欢使用类选择器方式 Ben 但我读到它的执行速度不如 DOM 访问快,是这样吗?每个实例也会有相同的类吗?
标签: asp.net jquery datagridview drop-down-menu css-selectors