簡體   English   中英

在用戶控件中單擊ASP.NET時,可以使用javascript在主頁中設置文本框的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM