我有一个ASP.NET页面,其中注册了1个用户控件。
我有一个服务器控件
<asp:LinkButton ID="vidoUpdatebtn" OnClick="vidoUpdatebtn_Click" runat="server">LinkButton</asp:LinkButton>
在.cs我处理
protected void vidoUpdatebtn_Click(object sender, EventArgs e)
{
//do something
ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "doSomeThing()", true);
}
在用户控件中我有函数doSomeThing()
function doSomeThing() {
alert("TestReady");
}
当我点击LinckButon注册的功能不起作用
答案 0 :(得分:3)
在PageLoad中写这个(你所写的唯一修改是注册的时刻 - PageLoad没有点击,点击太晚了,你必须在这里写下javascript函数的实际实现) :
protected void Page_Load(object sender, EventArgs e) {
ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript",
@"function doSomeThing() {
alert(""TestReady"");
}"
, true);
}
并在asp:LinkButton标记中(您必须指定OnClientClick属性):
<asp:LinkButton ID="vidoUpdatebtn" runat="server" OnClick="vidoUpdatebtn_Click" OnClientClick="doSomeThing()" >LinkButton</asp:LinkButton>
它应该有用。
答案 1 :(得分:0)
你试过这种方式:
在aspx页面上添加脚本管理器
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
代码隐藏:
Page.ClientScript.RegisterStartupScript(this.GetType(),"myscript", "doSomeThing()",true);
答案 2 :(得分:0)
如果要在单击按钮上运行客户端代码,则可以使用OnClickClick属性而不是OnClick事件。这也将避免回发的需要,并将立即给用户反馈。
e.g。
<asp:LinkButton ID="vidoUpdatebtn" OnClientClick="alert('TestReady'); return false;" runat="server">LinkButton</asp:LinkButton>