我如何使用按钮点击事件和onclientclick在一起

时间:2015-06-02 07:56:47

标签: c# asp.net

我想在点击弹出窗口并输入用户密钥时创建一个动态按钮,然后提交。

首先,我创建的动态按钮取决于表格行

TableCell tc;
for (int i = 1; i < Approval_TBL.Rows.Count; i++)
{
    TableRow tr = Approval_TBL.Rows[i];
    tr.Cells.Add(tc = new TableCell());
    Button tb = new Button();
    tb.ID = Convert.ToString(i);
    tb.Text = "Reject";
    tb.CssClass = "btn btn-default";
    tb.OnClientClick = "javascript:$find('popup1').show();return false;__doPostBack('btnReject_click','')";
    tb.Click += new EventHandler(btnReject_click);

    tc.Controls.Add(tb);
}

然后我使用ajax创建了弹出窗口:

 <ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender1" runat="server"
    TargetControlID="1"
    BehaviorID="popup1" 
    PopupControlID="Panel1"
    DropShadow="true"
    CancelControlID="Button3"
    OnOkScript="OkButtonClick"
    BackgroundCssClass="BackgroundStyle" />

然后我创建了点击事件

protected void btnReject_click(object sender, EventArgs e)
{
    //code
}

目前看起来它只运行弹出窗口的Onclientclick事件,但它不会进入btnReject_click。但如果我删除onclientclick,它将能够进入btnReject_click。

我的做法很奇怪,因为我不知道如何使用asp.net和我的大多数代码我把它放在服务器端(c#)。

2 个答案:

答案 0 :(得分:0)

如果你使用jQuery那么

$("selector").on('click',function(){
 // your code here
});

答案 1 :(得分:0)

OnClientClickreturn false;内。之后的任何事情都没有执行,所以回发永远不会发生。取消返回并且应该触发回发。

tb.OnClientClick = $find('popup1').show();__doPostBack('btnReject_click','');";