我有一个ASP文本框:
<asp:TextBox ID="tb111" runat="server" Width="150px" CssClass="divContentCenter form-control asp-textbox" AutoPostBack="false" onchange="OnDocNoChange()"></asp:TextBox>
会触发.js函数:
onDocNoChange = function () {
__doPostBack('ContentPlaceHolder1_tb111', 'tb111_Changed');
}
进入C#代码隐藏文件:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
PreparePageLoad();
BindGrid(1);
}
else
{
string arg = this.Request.Params.Get("__EVENTARGUMENT");
switch (arg)
{
case "tb111_Changed":
break;
}
}
}
问题是每当我运行/调试它时,arg
值总是""
这是一个空字符串。
我在调试时遇到了Request.Params并得到了这个:[System.Web.HttpValueCollection] = {__EVENTTARGET=&__EVENTARGUMENT=&__LASTFOCUS=&__CRYSTALSTATEctl00%24ContentPlaceHolder1%24crTransferOrder=%7b%220%22%3a%7b%22rptViewLabel%22%3a%22Main+Report%22%2c+%22gpTreeCurrentExpandedPaths%22%3a%7b%7d%2c+%22vCtxt%22%3a%22%2fwEXAwUVSXNMYXN0UGFnZU51bWJlc...
为什么不设置?
这里有什么问题?