Я использую jQuery, чтобы попытаться вызвать метод, когда jQuery обрабатывает событие изменения выпадающего списка ASP.NET (2.0). Проблема в том, что выпадающий список находится внутри вида сетки и даже тогда, только когда пользователь решил редактировать строку в этом виде сетки.
Я думаю, что он собирает объект с помощью блока кода 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 }
});
}
);
<% } %>
Это была одна попытка, которую я сделал, и я также попытался поместить ASP-код оператора IF вне блока 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);
}
Это то, что вы имели в виду?
Кстати, вышесказанное не сработало. Нет ошибок, просто нет событий.