ICallBackEventHandler не обновляет элементы управления значениями формы - PullRequest
2 голосов
/ 19 января 2009

Я хочу использовать ICallBackEventHandler, однако, когда я использую его для обратного вызова к серверу, я обнаруживаю, что мои объекты управления формой не имеют последних значений формы. Есть ли способ принудительно заполнить значения данными формы?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 02 февраля 2009

Посмотрите на http://msdn.microsoft.com/en-us/magazine/cc163863.aspx.

Короче говоря, вы должны очистить переменную '__theFormPostData' и вызвать 'WebForm_InitCallback ()' перед сценарием "CallbackEventReference". Это обновляет значения формы с пользовательскими значениями ввода. Примерно так:

// from the above link
string js = String.Format("javascript:{0};{1};{2}; return false;", 
    "__theFormPostData = ''",
    "WebForm_InitCallback()",
    Page.GetCallbackEventReference(this, args, "CallbackValidator_UpdateUI", "null"));
0 голосов
/ 14 мая 2010

У вас, очевидно, по-прежнему нет той же проблемы, но вам нужно вызвать WebForm_InitCallback () до вашего кода обратного вызова JavaScript. Это заставит страницу обновить значения POST в вашем объекте Request.Form.

Когда вы сейчас делаете PostBack, будут доступны значения, измененные во время обратных вызовов. Само собой разумеется, что они будут доступны во время обратных вызовов.

и т.д.

function SomeCode()
{
    __theFormPostCollection.length = 0;
    __theFormPostData = "";
    WebForm_InitCallback();

    ExecuteMyCallbackMethod("yaday", "yadya");
}
...