KyLim0211 Ответов: 3

В C# вам пользователь выбрал флажок из GridView в


protected void Page_Load(object sender, EventArgs e)
{
    DataTable question_x = new DataTable("Question");
    question_x.Columns.Add(new DataColumn("ID", System.Type.GetType("System.UInt64")));
    question_x.Columns.Add(new DataColumn("Name"));
    question_x.Rows.Add(1, "1) Training deliver can be understood?");
    question_x.Rows.Add(1, "2) The way instructor deliver the training is satisfaction?");
    question_x.Rows.Add(1, "3) The notes are easy to understand?");
    question_x.Rows.Add(1, "4) The training room is appropriate?");
    question_x.Rows.Add(1, "5) The training time is satisfactory?");
    gvEdit.DataSource = question_x;
    gvEdit.DataBind();

}

    <asp:GridView runat="server" CssClass="table table-striped table-bordered table-hover" ID="gvEdit" DataKeyNames="ID" AutoGenerateColumns="false" HeaderStyle-BackColor="CornflowerBlue" HeaderStyle-Font-Bold="true" HeaderStyle-ForeColor="White" CellPadding="5">
    <Columns>
        <asp:BoundField DataField="Name" HeaderText="Question" ItemStyle-ForeColor="White" ItemStyle-HorizontalAlign="Left" ItemStyle-BackColor="graytext" />
        <asp:TemplateField HeaderText="Poor">
            <ItemStyle HorizontalAlign="Center" />
            <ItemTemplate>
                <asp:RadioButton runat="server" ID="chkP" onclick="javascript:GridSelectAllColumn(this, 'chkPoor');" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Good">
            <ItemStyle HorizontalAlign="Center" />
            <ItemTemplate>
                <asp:RadioButton runat="server" ID="chkG" onclick="javascript:GridSelectAllColumn(this, 'chkGood');" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>



у меня есть несколько вопросов опроса в моем gridview, пользователь может выбрать только один выбор для каждого вопроса.У меня есть трудности с получением выбора пользователя в c#, пожалуйста, направьте меня на это спасибо.. я хочу, чтобы выводить что-то вроде этого после того, как я нажму кнопку Отправить:

1. checkP
2. checkG
3. checkG
4. checkG
5. checkP

Что я уже пробовал:

пожалуйста, помогите, заранее спасибо.

3 Ответов

Рейтинг:
2

Tiwari Avinash

При получении значения из представления сетки у вас есть цикл через каждую строку представления сетки как

foreach(GridViewRow row in GridView2.Rows)
{
    for(int i = 0; i < GridView2.Columns.Count; i++)
    {
        string header = GridView2.Columns[i].HeaderText;
        CheckBox chkp=(Checkbox)GridView1.Rows[e.RowIndex].Cells[1].FindControl("chkp");
        CheckBox chkg=(Checkbox)GridView1.Rows[e.RowIndex].Cells[2].FindControl("chkg");
       //Get the .checked values of chkp and chkg show it as you desire
       string Ans= chkp.checked==True?"CheckP":chkg.checked==True?"CheckG":"No Answer"
    }
}


Код может не компилироваться, так как он не тестировался.


Рейтинг:
1

Vignesh Mani

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        CheckBox chk = new CheckBox();
        chk.EnableViewState = true;
        chk.Enabled = true;
        chk.ID = "chkb";
        e.Row.Cells[1].Controls.Add(chk);
    }
}

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        var chk = (CheckBox)e.Row.FindControl("chkb");
        // databind it here according to the DataSource in e.Row.DataItem
    }
}


Рейтинг:
1

Karthik_Mahalingam

попробовать это


<head>
    <script src="jquery.js"></script>
    <script>

        function GridSelectAllColumn(obj, val) {
            var $tr = $(obj).parent().parent();

            if (val == 'chkGood') {
                $("input[id*='chkG']", $tr)[0].checked = true;
                $("input[id*='chkP']", $tr)[0].checked = false;
            } else {
                $("input[id*='chkG']", $tr)[0].checked = false;
                $("input[id*='chkP']", $tr)[0].checked = true;
            }

        }

    </script>

</head>



protected void ButtonSubmit_Click(object sender, EventArgs e)
       {
           foreach (GridViewRow row in gvEdit.Rows)
           {
               CheckBox chkG = (CheckBox)row.FindControl("chkG");
               CheckBox chkP = (CheckBox)row.FindControl("chkP");
               string question = row.Cells[0].Text;
               string selectedValue = chkG.Checked ? "CheckG" : chkP.Checked ? "CheckP" : "Not Selected";


           }
       }



Свяжите данные внутри !Блок IsPostBack

protected void Page_Load(object sender, EventArgs e)
       {
           if (!IsPostBack)
           {

               DataTable question_x = new DataTable("Question");
               question_x.Columns.Add(new DataColumn("ID", System.Type.GetType("System.UInt64")));
               question_x.Columns.Add(new DataColumn("Name"));
               question_x.Rows.Add(1, "1) Training deliver can be understood?");
               question_x.Rows.Add(1, "2) The way instructor deliver the training is satisfaction?");
               question_x.Rows.Add(1, "3) The notes are easy to understand?");
               question_x.Rows.Add(1, "4) The training room is appropriate?");
               question_x.Rows.Add(1, "5) The training time is satisfactory?");
               gvEdit.DataSource = question_x;
               gvEdit.DataBind();
           }
       }