手动回发在asp.net中不起作用

本文关键字:net 不起作用 asp | 更新日期: 2023-09-27 18:02:12

我正试图手动PostBack Page,但不知何故它不工作。我不确定我做错了什么。我使用Jquery对话框,并把确认框张贴回页面之前。这是我的代码。

<标题> HTML
 <form id="form1" runat="server">
          <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
          <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
    <asp:CheckBox ID="cbIsCollected" runat="server"  AutoPostBack="false" Checked='<%# MWClickAndCollectHelper.CheckOrderCollectedStatus(AlwaysConvert.ToInt(Eval("OrderId"))) %>'
         OnCheckedChanged="cbIsCollected_CheckedChanged" CssClass="isCollectedCheckBox" />
</form>
<标题> JAVASCRIPT h1> 台代码
protected void Page_Load(object sender, EventArgs e)
      {
            ClientScript.GetPostBackEventReference(this, string.Empty);
                  string targetCtrl = Page.Request.Params.Get("__EVENTTARGET");
                  postbackId.Text = targetCtrl ?? "First Time Loaded";
                  if (!Page.IsPostBack)
                  {
                        BindGridView(gvOrders, CNCOrderCollection);
                  }
       }

所以当我CheckCheckBox,它应该回发到服务器和ControlID的名称应该出现。但在我的情况下,它总是显示"第一次加载"。这意味着页面不会将其识别为回发。我想触发服务器端CheckBox_changed事件。

请帮。

手动回发在asp.net中不起作用

为什么要"手动"回发?复选框控件具有回发处理程序。将AutoPostBack设置为true,并将OnCheckedChanged设置为服务器端事件方法的名称。如果你想获得发送点击的控件,那就是sender的作用。例子:

<asp:CheckBox ID="cbIsCollected" runat="server"  AutoPostBack="Trye" 
OnCheckedChanged="cbIsCollected_CheckedChanged" CssClass="isCollectedCheckBox" />
Protected Sub cbIsCollected_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs)
    dim cbSender as checkbox
    cbSender = ctype(sender, checkbox)
end Sub

如果这段代码没有达到你想要的效果,请告诉我。

编辑:

如果你想从JS回发,你有两个选择。首先,可以像这样调用_doPostback:

function someFunction()
    {
     __doPostBack('btnName','');
    } 

其中btnName是页面上按钮的名称。

第二,你可以在你的页面上有一个隐藏的按钮,但是有一个与它相关联的事件处理程序。你的客户端按钮点击调用调用作为JS函数,为你点击服务器按钮:像这样:

function clickButton() {
var getBtn = document.getElementById('<%= btnName.ClientId %>')
getBtn.click()
}     

当然,这似乎是多余的,因为为什么Yes按钮没有自己的事件处理程序,而No按钮是返回false的客户端按钮?