[英]ASP.NET on button click in user control set the value of a textbox in the main page using javascript
net / C#应用程序,我有一个包含按钮的用户控件。
我在运行时将控件加载到主页上的PlaceHolder中。
<asp:PlaceHolder ID="PlaceHolder1" runat="server">
</asp:PlaceHolder>
背后的代码:
MyControl CC = (MyControl)LoadControl("Controls/MyControl.ascx");
PlaceHolder1.Controls.Add(CC);
在主页上,我有一个文本框和一个链接按钮。 我要执行以下操作:
当用户单击用户控件中的按钮时,文本框值将设置为“ 5”,并且使用javascript触发链接按钮单击事件。
我尝试了以下操作,但没有成功:
<asp:TextBox ID="PageBox" runat="server"></asp:TextBox>
<asp:LinkButton ID="LinkButtonPage" runat="server" onclick="LinkButtonPage_Click" Text="Submit"></asp:LinkButton>
<script type="text/javascript">
function SetPage(a) {
var txtFld = document.getElementById("PageBox");
txtFld.value = a;
document.getElementById('LinkButtonPage').click();
return false;
}
</script>
<input type="button" id="Button1" onclick="SetPage('5');" value="Submit"/>
但是当我单击按钮时,nothig发生。
感谢您的任何帮助
您得到错误的控件的ID。 您应该这样做:
document.getElementById('<%=PageBox.ClientID%>');
和
document.getElementById('<%=LinkButtonPage.ClientID%>');
另外,您需要将JavaScript函数移至主页,因为那是对两个控件的引用。
如果要在更改文本框值后提交页面,请尝试以下操作:
<script type="text/javascript">
function SetPage(a) {
var txtFld = document.getElementById("<%=PageBox.ClientID%>");
txtFld.value = a;
document.forms[0].submit(); // or document.forms['formname'].submit()
return false;
}
</script>
我通过直接在按钮的onclick事件中添加函数来解决此问题
<input type="button" id="Button1" onclick="document.getElementById('PageBox').value='5';document.getElementById('LinkButtonPage').click();return false;" value="Submit"/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.