Я хотел бы знать, как сохранить состояние управления, которое было изменено в Javascript.
У меня есть два TextBox, один DropDownList и кнопка (все Runat = Server) в C# ASP.net 2010 Express.
Первый текстовый блок просто принимает любые данные, вводимые пользователем.
Второе состояние включения текстового поля будет изменяться в зависимости от выбранного значения DDL.
Если выбранное значение ddl равно «-», второе текстовое поле станет Enabled = False.
Если не «-», он станет Enabled = True. Это разрешение выполняется через Javascript.ASP.Net: Как сохранить состояние TextBox после обратной передачи
На моей странице Загрузить мероприятие у меня есть код ниже.
if (!IsPostBack)
{
txtKey2.Text = "";
txtKey2.BackColor = System.Drawing.ColorTranslator.FromHtml("#CCCCCC");
txtKey2.Enabled = false;
}
И в моей странице ASPX, у меня есть некоторые JavaScript, который очистит данные TextBox и отключить текстовое поле.
Это вторая текстовая область.
<asp:TextBox ID="txtKey2" runat="server" Width="425px" EnableViewState="False"></asp:TextBox>
А вот для DDL.
<asp:DropDownList ID="selKey1" runat="server" onchange="EnableSelkey(this.value,1)">
<asp:ListItem Value="0">-</asp:ListItem>
<asp:ListItem Value="1">AND</asp:ListItem>
<asp:ListItem Value="2">OR</asp:ListItem>
</asp:DropDownList>
Вот код для моего Javascript. (У меня есть план для реализации другого текстового поля и ddl, поэтому в моем коде у меня есть Else if condition).
function EnableSelkey(val, strID) {
var txtBox;
if (strID == "1")
txtBox = document.getElementById('<%= txtKey2.ClientID %>');
else if (strID == "2")
txtBox = document.getElementById('<%= txtKey3.ClientID %>');
else
txtBox = document.getElementById('<%= txtKey4.ClientID %>');
if (val != 0) {
txtBox.disabled = false;
txtBox.style.backgroundColor = "White";
txtBox.value = "";
txtBox.select();
}
else {
txtBox.disabled = true;
txtBox.style.backgroundColor = "#CCCCCC";
txtBox.value = "";
}
}
У меня нет ничего в событии нажатия кнопки.
Используя код выше, когда я запускаю проект, страница загружается Ok. Второе состояние с включенным текстовым полем установлено в False (через событие Page_Load). Пока хорошо.
Затем из моего браузера я выбираю значение ddl для другого вместо «-», текстовое поле становится возможным из-за javascript. Хорошо.
Введите значение и нажмите кнопку. Страница PostBack происходит здесь. Текстовое поле все еще включено (из-за EnableViewState = False для моего текстового поля).
Я выбираю значение ddl для «-», второе текстовое поле отключено.
Нажмите кнопку, страница postback произойдет, но на этот раз текстовое поле все еще включено. < < Это проблема, которую я пытаюсь решить. Я изменяю EnableViewState, ViewStateMode в разных значениях, но все тот же.
Есть ли решение для этого?
Вот мой URL-адрес тестового изображения. State 1, State 2, State 3
Извините за длинный пост.
Hi Mayur, Спасибо за ваше предложение, я попробовал ваше предложение, но на этот раз он даст мне ошибку до загрузки моей страницы. «Ошибка выполнения Microsoft JScript:« null »или не объект», и эта ошибка была «else txtBox.disabled = true;» линия. Извините за длинный перерыв и ответ за задержку. – scsfdev