Вызов события с HiddenField в ASP.NET без сценариев - PullRequest
2 голосов
/ 08 июля 2010

Похоже, что "asp: HiddenField" не имеет свойства "AutoPostBack", и у меня возникают проблемы с событием "OnValueChanged" ... Мне нужно вызывать функцию (C #), когда я заполняю скрытыйполе, но в моем случае ничего не происходит.И я не могу использовать никаких сценариев.

Что бы это могло быть?= (Спасибо за любой ответ!

Ответы [ 2 ]

2 голосов
/ 09 июля 2010

В зависимости от того, что вы пытаетесь сделать, вы можете добавить в свой код позади свойство, которое устанавливает значение элемента управления HiddenField, а затем использовать это свойство. затем, в сеттере, делай что хочешь.

... * то есть 1003 *

public string MyHiddenValue
{
    get { return hiddenField.Value; }
    set 
    {
        hiddenField.Value = value;
        if(MyHiddenValueChanged != null)
            MyHiddenValueChanged(this, new EventArgs());
    }
}
public event EventHandler MyHiddenValueChanged;
1 голос
/ 08 июля 2010

Я меняю свой полный ответ, потому что я был совершенно неправ. Чёрт.

До этого я почти ничего не знал о событии OnValueChanged для HiddenField (ну, на самом деле я ничего об этом не знал, смеется), но после проверки MSDN по этому вопросу, похоже, что событие OnValueChanged уже есть чтобы вы могли определить, изменилось ли значение поля между постбэками (т. е. пользователь изменил его в своем браузере с момента последнего обновления значения). Если вы измените значение HiddenField при публикации на странице, это не вызовет событие OnValueChanged. Если, с другой стороны, скрипт на странице изменил значение HiddenField перед отправкой следующей страницы, то это событие сработало бы. Так что это бесполезно для вас в вашей ситуации. Мое раннее предложение использовать невидимый TextBox и обрабатывать событие TextChanged столь же бесполезно, потому что событие TextChanged сработало бы, только если пользователь изменил его.

Итак, это не отвечает на ваш вопрос, извините за это.

Да, да, вот ссылка MSDN: Управление веб-сервером HiddenField

...