簡體   English   中英

C#ASP.NET復選框選擇單個值

[英]C# ASP.NET Checkbox selected single value

我正在嘗試從復選框中獲取選定的值(僅談論單個結果/檢查),我想在事件onClick上獲得該值,不僅單擊復選框,我還獲得了兩個我正在選擇的下拉列表價值,當我單擊按鈕時,我從下拉列表中獲取值,而我從復選框列表中無法獲取值,我也不知道為什么,因為我在頁面加載源上設置了allready之前,一切似乎都很好,但我可以獲得價值:/

這是代碼:

 protected void btnSearch_Click(object sender, EventArgs e)
    {
       var dropDown_one= Convert.ToInt32(dropOne.SelectedValue); //THIS IS OK
       var dropDown_two = Convert.ToInt32(dropTwo.SelectedValue);//THIS IS OK
       var checkBox = Convert.ToInt32(checkBox.SelectedValue); //<- here I got error, because I am trying to convert "" value to int

    }

並在頁面加載我dId這:

checkBox.DataSource =SomethingFromDatabase();
        checkBox.DataTextField = "Name";
        checkBox.DataValueField = "ID";
        checkBox.DataBind();

因此,我從數據庫中獲得了值,並且可以檢查它們,但是當我單擊按鈕時出現錯誤,因為checkboxlist表示其值為“”,所以就像我什么也沒選擇。

謝謝大家,干杯

Page_Load事件處理程序在每次回發中執行。 如果您每次都調用數據綁定代碼,則CheckBoxList將被清除並重新填充,並且所做的選擇將丟失。

解決此問題的方法是將數據綁定在if (!IsPostBack)條件塊內:

void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        checkBox.DataSource = SomethingFromDatabase();
        checkBox.DataTextField = "Name";
        checkBox.DataValueField = "ID";
        checkBox.DataBind();
    }
}

檢查Checkbox是否未處於禁用狀態,因為它會在禁用狀態下返回NULL並將其轉換為Int會引發錯誤。 因此,檢查復選框值是否為NULL並將其轉換。

暫無
暫無

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

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