Если вы хотите поместить какое-то значение в _ EVENTARGUMENT , вы должны сделать это с помощью javascript перед отправкой формы по _doPostBack ('UpdatePanel1', '') потому что __EVENTTARGET является скрытым полем и в вашем HTML-документе это выглядит так:
<input type="hidden" value="" id="__EVENTARGUMENT" name="__EVENTARGUMENT">
Я рекомендую вам сделать что-то вроде этого:
function setArgAndPostBack() {
var arg = document.getElementById('__EVENTARGUMENT');
var arg = document.getElementById("__EVENTARGUMENT");
arg.value = 'something you want to put to server';
__doPostBack('UpdatePanel1', '');
}
Если вы используете jQuery, он будет короче:
function setArgAndPostBack() {
$("#__EVENTARGUMENT").val('something you want to put to server');
__doPostBack('UpdatePanel1', '');
}
Если это не работает, я хотел бы предложить вам поместить одно скрытое поле в панель обновления:
<asp:UpdatePanel runat="server" ID="UpdatePanel1">
<ContentTemplate>
<asp:HiddenField ID="hdnData" value="" runat="server" />
<!-- your content goes here -->
</ContentTemplate>
</asp:UpdatePanel>
А затем выполните ту же работу, что и выше:
function setArgAndPostBack() {
//Here hidden field is filled with your data
$("#<%=hdnData.ClientID%>").val('something you want to put to server');
__doPostBack('UpdatePanel1', '');
}
В первом сценарии вы можете получить __EVENTARGUMENT на стороне сервера:
String args = Request["__EVENTARGUMENT"];
Если первый сценарий не работает, вы можете использовать что-то вроде этого:
String args = hdnData.Value;//This works even in Page_Load function.