我正在尝试使用__doPostBack
函数,这样我就可以强制我的页面在页面加载时进行后包,但我在理解上遇到一些困难。
当我在网上查看示例时。单击按钮时,我想发回帖子,但不确定如何完成后面代码中的代码。
这是我到目前为止所拥有的:
<script type="text/javascript">
function DoPostBack() {
__doPostBack('btnNew', 'MyArgument');
}
</script>
这是我的按钮
<asp:Button ID="btnNew" runat="server" CausesValidation="False" CommandName="New" OnClick="DoPostBack()" Text="Create" />
我似乎不明白在后面的代码中使用“MyArgument”。我需要在后面的代码中做什么才能使其在页面加载时回发?预先感谢您的帮助。
场景1
如果您想使用 JavaScript函数来触发回发,你需要替换OnClick
with OnClientClick
。像这样修改按钮定义(我已经假设它嵌套在UpdatePanel
):
<asp:Button ID="btnNew"
runat="server"
CausesValidation="False"
CommandName="New"
OnClientClick="DoPostBack();"
Text="Create" />
在后面的代码中,Page_Load
方法,阅读Request["__EVENTTARGET"]
和Request["__EVENTARGUMENT"]
:
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
if (Request["__EVENTTARGET"] == "btnNew" &&
Request["__EVENTARGUMENT"] == "MyArgument")
{
//do something
}
}
}
场景2
如果您不一定想使用 JavaScript,像这样修改按钮的定义:
<asp:Button ID="btnNew"
runat="server"
CausesValidation="False"
CommandName="New"
OnClick="DoPostback"
CommandArgument="MyArgument"
Text="Create" />
然后,在后面的代码中添加以下方法:
protected void DoPostback(object sender, EventArgs e)
{
var target = ((Button)(sender)).ClientID; //"btnNew"
var argument = ((Button)(sender)).CommandArgument; //"MyArgument"
if (target == "btnNew" &&
argument == "MyArgument")
{
//do something
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)