Один метод, который я использую, - перенаправить вывод в файл ASCII с помощью командлета Out-File.
Например, я часто запускаю сценарии SQL, которые создают другой SQL-скрипт для выполнения в Oracle. При простом перенаправлении («>») вывод будет в UTF-16, который не распознается SQLPlus. Чтобы обойти это:
sqlplus -s / as sysdba "@create_sql_script.sql" |
Out-File -FilePath new_script.sql -Encoding ASCII -Force
Сгенерированный скрипт может быть выполнен с помощью другого сеанса SQLPlus без каких-либо проблем с Unicode:
sqlplus / as sysdba "@new_script.sql" |
tee new_script.log
документация jQuery состояния:
[jQuery.val] проверки, или выбирает , все переключатели, флажки и избранные опции, которые соответствуют множеству значений.
Это поведение находится в jQuery
версии 1.2
и выше.
Вы, скорее всего, хотите это:
$("._statusDDL").val('2');
Просто попробуйте
$("._statusDDL").val("2");
а не
$("._statusDDL").val(2);
Как Вы загружаете значения в выпадающий список или определяете который значение выбрать? При выполнении этого Ajax использования то причина, Вам нужна задержка перед выбором, происходит, мог быть то, потому что значения не были загружены в том, в то время, когда рассматриваемая строка выполнилась. Это также объяснило бы, почему это работало при помещении аварийного оператора на строку прежде, чем установить состояние, так как аварийное действие дало бы действительно задержку данных для загрузки.
при использовании одного из методов Ajax jQuery можно указать функцию обратного вызова и затем поместить $("._statusDDL").val(2);
в функцию обратного вызова.
Это было бы более надежным способом обработать проблему, так как Вы могли быть уверены, что метод выполнился, когда данные были готовы, даже если это заняло больше времени, чем 300 мс.
Просто примечание - я использовал селекторы с подстановочными знаками в jQuery для захвата элементов, скрытых идентификаторами клиента ASP.NET - это тоже может вам помочь:
<asp:DropDownList id="MyDropDown" runat="server" />
$("[id* = 'MyDropDown']").append("<option value='-1'> </option>"); //etc
Обратите внимание на подстановочный знак id * - это найдет ваш элемент, даже если его имя - "ctl00 $ ctl00 $ ContentPlaceHolder1 $ ContentPlaceHolder1 $ MyDropDown"
Просто для справки, вам не нужно использовать CSS-классы для этого.
Вы можете написать следующую строку кода, чтобы получить правильное имя элемента управления на клиенте:
$("#<%= statusDDL.ClientID %>").val("2");
ASP.NET правильно отобразит идентификатор элемента управления в jQuery.
Я изменил его так, чтобы теперь он выполняется через 300 миллисекунд с использованием setTimeout. Кажется, сейчас работает.
Я сталкивался с этим много раз при загрузке данных из вызова Ajax. Я тоже использую .NET, и требуется время, чтобы приспособиться к clientId при использовании селектора jQuery. Чтобы исправить возникшую проблему и избежать добавления свойства setTimeout
, вы можете просто вставить « async: false
» в вызов Ajax, и он даст DOM достаточно времени, чтобы вернуть объекты, которые вы добавляете в выборку. Небольшой пример ниже:
$.ajax({
type: "POST",
url: document.URL + '/PageList',
data: "{}",
async: false,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
var pages = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;
$('#locPage' + locId).find('option').remove();
$.each(pages, function () {
$('#locPage' + locId).append(
$('<option></option>').val(this.PageId).html(this.Name)
);
});
}
});
onFling()
сам по себе won' t делают Вас много пользы, потому что это won' t говорят Вам, когда граница списка является " hit". уровень API 9 представил функциюonOverScrolled()
для ListViews (строка 51 в моем pastebin). – Paul Lammertsma 28 February 2012 в 22:34