【问题标题】:doPostBack not working properlydoPostBack 无法正常工作
【发布时间】:2014-01-13 08:31:51
【问题描述】:

我正在尝试通过单击按钮回帖。但无法获得 __EVENTTARGET__EVENTARGUMENT。它当前始终为空。我还有其他条目需要做吗?

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"));

【问题讨论】:

  • sign.val() 的值是多少?
  • 隐藏字段中的字符串(例如:sam)
  • 也可以解释一下你想要做什么......以及为什么你想要 __EVENTTARGET 和 __EVENTARGUMENT?
  • 看我只需要事件 arg。我想将隐藏类型输入中的值传递到服务器端
  • 这是一个黑客。既然有更好的方法可以实现这一目标,为什么还要尝试破解 ASP.NET 内在函数?

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


【解决方案1】:

而不是做这样的黑客。我实际上建议您以正确的方式做事,这样您就可以保证可伸缩性,因为您永远不知道ASP.NET 的下一个版本会发生什么,而 ASP.NET 团队当然不认可这些类型的黑客攻击,换句话说,您的 hack 可能会随着 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 而不是试图破解其内在函数

【讨论】:

  • 是的,我知道这种方法。但我想知道我的 dopostback 出了什么问题
猜你喜欢
  • 2016-12-01
  • 1970-01-01
  • 2016-09-01
  • 2012-07-11
  • 2018-04-08
  • 2017-04-20
  • 2018-10-02
  • 2016-09-04
  • 2010-10-06
相关资源
最近更新 更多