2013-11-25 6 views
0

я запуская событие обратной передачи в ASPX странице, как показано ниже: заКак получить пост обратно значение параметра в коде-за

__doPostBack('AddNewEmployeeType', "empl", "sick"); 

Код:

string val = Request.Params.Get("__EVENTTARGET"); 

данного кода я был способный получить только одно первое значение, но я намерен получить все три значения параметра. Как я могу это достичь?

ответ

1

Используйте __EVENTARGUMENT:

string parameter = Request["__EVENTARGUMENT"]; 
string val = Request.Params.Get("__EVENTTARGET"); // AddNewEmployeeType 

Here's a tutorial: Understanding the JavaScript __doPostBack Function

Если вам нужно передать несколько параметров обратно в коде вам нужно разбить его разделителем самостоятельно. Можно, например, использовать трубу |:

__doPostBack('AddNewEmployeeType', "empl|sick"); 

и в коде:

string parameter = Request["__EVENTARGUMENT"]; 
string[] allParams = parameter.Split('|'); 
+0

Еще я смог получить только один параметр. Проблема не решена. –

+0

@VivekP: Я отредактировал свой ответ. –

+0

Запрос ["__ EVENTARGUMENT"] приходит как "undefined" –

0

Ваш призыв к __doPostBack технически неправильно. Если вы проверите источник страницы ASP.NET, вы увидите эту функцию:

function __doPostBack(eventTarget, eventArgument) { 
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) { 
     theForm.__EVENTTARGET.value = eventTarget; 
     theForm.__EVENTARGUMENT.value = eventArgument; 
     theForm.submit(); 
    } 
} 

Обратите внимание, что у нее есть только 2 параметра. Если вам нужно передать больше значений, вам нужно ввести их в параметр eventArgument.

Как вы это делаете - используйте список, разделенный запятой, или JSON, или что вам подходит, и проанализируйте это значение (путем доступа к Request["__EVENTARGUMENT"]) на сервере.

Смежные вопросы