簡體   English   中英

在asp.net應用程序中動態使用單選按鈕

[英]dynamically use radio buttons in asp.net applications

我正在開發一個asp.net應用程序。

當用戶單擊頁面時,某些單選按鈕會動態添加到頁面中。

然后,當他單擊另一個“更新”按鈕時,我寧願檢查一下,選中了哪些單選按鈕並將它們發回到服務器上。

問題如下:

我在page_load方法中動態添加了單選按鈕。

但是,當我使用更新按鈕onclick方法時,我無法使用它們來檢查是否未選中它們。

我已經嘗試了幾種方法,例如使用單選按鈕的靜態字典,但是當我使用update方法時,無法對其進行引用。

頁面加載時,這是我的方法:

private static Dictionary<string,RadioButton> buttons;

protected void Page_Load(object sender, EventArgs e)
{
    for (int i=0;i<5;i++)
    {
        RadioButton r = new RadioButton();
        r.Text = i.ToString();
        r.ID = i.ToString();;
        Panel1.Controls.Add(r);
        buttons.Add(i.ToString(), r);
    }
}

這是我的方法,當用戶單擊“更新”按鈕時,我想根據其ID或文本訪問每個單選按鈕,但是我不能:例如,如果我希望將1到3的所有按鈕都設為已檢查:

protected void Button1_Click(object sender, EventArgs e)
{
    for (int i=1;i<4;i++)
    {
        buttons[i].checked=true;
    }
}

Asp.net將在每次回發時清除您動態添加的控件。 如果要獲得他們的選擇,則必須在客戶端中單擊JS中的按鈕。 C#代碼:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            for (int i = 0; i < 5; i++)
            {
                RadioButton r = new RadioButton();
                r.Text = i.ToString();
                r.ID = i.ToString();
                r.ClientIDMode = System.Web.UI.ClientIDMode.Static;
                Panel1.Controls.Add(r);

            }
        }
    }

和JS代碼:

<script type="text/javascript">
    function getCheckedRadios() {
        alert(document.getElementById('1').checked);
    }
</script>

按鈕的aspx代碼為:

<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="getCheckedRadios(); return false;"/>

希望對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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