如何更改按钮的onclientclick属性服务器端?

时间:2013-08-06 16:57:20

标签: c# javascript asp.net telerik

我有一个按钮如下:

<asp:Button ID="btnNext" runat="server" Font-Bold="true" Text="Next"
    onclick="btnNext_Click" style="text-align: center" Width="80px" />

和RadNumericTextBox:

<telerik:RadNumericTextBox ID="txtTotal5" runat="server" Width="50px" AutoPostBack="true" 
    MinValue="0" ontextchanged="txtTotal5_TextChanged"><NumberFormat DecimalDigits="0" /></telerik:RadNumericTextBox>

我需要根据telerik onClientClick中是否包含文本来设置RadNumericTextBox属性。如果它没有值,则需要设置onClientClick属性,如下所示。如果框中有值,我想继续onclick事件,将其定向到下一个表单。

protected void txtTotal5_TextChanged(object sender, EventArgs e)
    {
        if (txtTotal5.Value.ToString() == "")
        {
            btnNext.OnClientClick = "javascript: return confirm('Please have the employee complete this form.')";
        }
        else
        {
            btnNext.OnClientClick = "";
        }
    }

现在我已经多次使用调试器来逐步执行代码,并且值在函数中按预期更改,但即使它将OnClientClick属性设置为"",该框仍然是单击按钮时弹出。值是不是以某种方式传递给客户端?任何建议,将不胜感激。提前谢谢!

2 个答案:

答案 0 :(得分:1)

您需要将OnClientClick添加到按钮的Attributes集合中,如下所示:

btnNext.Attributes.Add("OnClientClick", "YourJavaScriptFunction();");

答案 1 :(得分:0)

我找到了解决问题的方法。我按原样保留了上面的函数,但我基本上将if-else复制到if(IsPostBack)内的page_load事件中。