我尝试通过单击按钮进行回发。但无法获取 __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"));
最佳答案
而不是进行这样的黑客攻击。我实际上建议您以正确的方式做事,这样您就可以保证可扩展性,因为您永远不知道 ASP.NET
的下一个版本会发生什么,并且 ASP.NET 团队当然不会认可这些黑客攻击的类型,换句话说,您的黑客攻击可能会在 ASP.NET
的 future 版本中被破坏...始终努力避免它们。所以,如果你想做一个完整的回发,你绝对不需要 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,而不是试图破解其内在函数
关于c# - doPostBack 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21086804/