doPostBack无法正常工作

时间:2014-01-13 08:31:52

标签: c# javascript jquery asp.net .net

我想点击按钮点击回来。但无法获得__EVENTTARGET__EVENTARGUMENT。它目前始终为null。我还有其他参赛作品吗?

ASPX

<asp:Button ID="btn" runat="server" OnClientClick="GetDet();" Text="Click"/>       

<script type="text/jscript">
    function GetDet() {
      var obj = $('.output');
      var sign = $('.name'); //hidden field                         
      __doPostBack('btn', sign.val());                         
    }
</script>

的.cs

string tar = Convert.ToString(Request.Params.Get("__EVENTTARGET"));
string val = Convert.ToString(Request.Params.Get("__EVENTARGUMENT"));

1 个答案:

答案 0 :(得分:3)

而不是做这样的黑客攻击。我实际上建议你以正确的方式做事,这样你才能保证可伸缩性,因为你永远不知道在ASP.NET的下一个版本中会发生什么,并且ASP.NET团队肯定不支持这些类型的黑客攻击,换句话说,你的黑客攻击可能会打破ASP.NET的未来版本...总是努力避免它们。所以,如果你想做一个完整的回发,你绝对不需要javascript ....

<asp:Button ID="btn" runat="server" Text="Click"/>  

然后,如果您想发布隐藏字段的值,只需将隐藏字段添加到表单...

<asp:HiddenField  ID="hdfName" runat="server" Value="whatever" />

如果你想在回发期间读取隐藏字段的值......

public override void OnLoad(EventArgs args)
{
     var name = hdfName.Value;
}

这就是你应该如何以正确的方式使用ASP.NET而不是试图破解它的内在函数