Получить выбранное значение списка переключателей из переключателей внутри повторителя - PullRequest
1 голос
/ 15 июля 2011

У меня есть радиопереключатель внутри ретранслятора. Я показываю скриншот того, как это выглядит. У меня есть заголовки столбцов внутри шаблона заголовка повторителя. В шаблоне элемента у меня есть 4 поля / столбца. 3-е поле - это список переключателей. Если, например, я выбрал переключатель «Да» в строке «Тестовое задание 2» - мне нужно отправить обратно и сохранить значение этой записи (обратно в базу данных). Мой ретранслятор может потенциально отображать много строк полей и списков переключателей.

screenshot

Ответы [ 3 ]

3 голосов
/ 15 июля 2011

Попробуйте это


protected void btnSave_Click(object sender, EventArgs e)
    {
        foreach (RepeaterItem item in Repeater1.Items)
        {
            // Checking the item is a data item
            if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
            {
                var rdbList = item.FindControl("RadioButtonList1") as RadioButtonList;
                // Get the selected value
                string selected = rdbList.SelectedValue;
            }
        }
    }

0 голосов
/ 15 июля 2011

Я использовал что-то в gridview, как эта надежда, это может помочь вам Давайте рассмотрим, у нас есть 2 кнопки

<asp:RadioButton ID="rb_Yes" runat="server" GroupName="GpName" Text="Yes" OnCheckedChanged="rb_Yes_Click" AutoPostBack="true" />
<asp:RadioButton ID="rb_No" runat="server" GroupName="GpName" Text="No" OnCheckedChanged="rb_No_Click" AutoPostBack="true"/>

Просто используйте событие oncheckedChanged для обратной отправки и в .cs Page используйте код примерно так, я уверен, что это может помочь вам

protected void rb_Yes_Click(object sender, EventArgs e)
{ 
    RadioButton rb_Yes = (RadioButton)sender;
    GridViewRow grid_row = (GridViewRow)rb_Yes.NamingContainer;
    if(((RadioButton)grid_row.FindControl("rb_Yes")).Checked==true)
    {
//Action that you want to implement
    }
}

Надеюсь, это поможет вам

0 голосов
/ 15 июля 2011
if (Repeater1.Items.Count > 0)
{
    for (int count = 0; count < Repeater1.Items.Count; count++)
    {
        RadioButton rd1 = (RadioButton )Repeater1.Items[count].FindControl("ID1");
        RadioButton rd2 = (RadioButton )Repeater1.Items[count].FindControl("ID2");
        RadioButton rd3 = (RadioButton )Repeater1.Items[count].FindControl("ID3");
        if (rd1.Checked)
        {

        }
        if (rd2.Checked)
        {

        }
       if (rd3.Checked)
        {

        }
    }
}
...