【问题标题】:how can I bind data randomly into a radiobuttonlist asp.net如何将数据随机绑定到单选按钮列表 asp.net
【发布时间】:2015-11-19 09:50:10
【问题描述】:

我正在构建一个表单。我需要显示我的问题,然后在 radiobuttonlist 中显示 3 个答案 [它们是同一张表中的列]。

我尝试将数据自动绑定到Datalist

然后检查是否检查了正确的答案...如果不是,我需要显示错误

<asp:DataList ID="DataList1t" runat="server" DataSourceID="AccessDataSource1" onitemdatabound="DataList1_ItemDataBound" onselectedindexchanged="DataList1t_SelectedIndexChanged1">
    <ItemTemplate>
        <table>
            <tr>
                <td>
                    <%# Eval("TheQus") %>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:RadioButtonList runat="server" ID="RadioButtonList1">
                    </asp:RadioButtonList>
                </td>
            </tr>
        </table>
        <br />
        <br />
    </ItemTemplate>
</asp:DataList>
<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/Databasegeometreyeh.accdb" SelectCommand="SELECT TOP 4 Qus.ID, Qus.TheQus, Qus.CorrectAns, Qus.Ans2, Qus.Ans3 FROM  EkhtbrNafsk INNER JOIN Qus ON EkhtbrNafsk.ID = Qus.Type  WHERE  Qus.Type= 1  order By rnd(Qus.ID)"></asp:AccessDataSource>

后面的代码是

protected void Page_Load(object sender, EventArgs e)
{
    //DataList1t.Visible = false;

    //DataTable QusTri = DAL.SelectFromTable("SELECT TOP 4 Qus.TheQus FROM  EkhtbrNafsk INNER JOIN Qus ON EkhtbrNafsk.ID = Qus.Type  WHERE  Qus.Type=" + 1 + " order By rnd(Qus.ID)");
    //DataList1t.DataSource = QusTri;
    //DataList1t.DataBind();

    //DataList1r.Visible = false;

    //DataTable Qusrepoe = DAL.SelectFromTable("SELECT TOP 4 Qus.TheQus FROM  EkhtbrNafsk INNER JOIN Qus ON EkhtbrNafsk.ID = Qus.Type  WHERE Qus.Type= " + 2 + " order By rnd(Qus.ID)");
    //DataList1r.DataSource = Qusrepoe;
    //DataList1r.DataBind();


    if (!IsPostBack)
    {
        DataTable t1 = DAL.SelectFromTable("select * from [EkhtbrNafsk]");
        DropDownList1.DataTextField = "TypeTest";
        DropDownList1.DataValueField = "ID";
        DropDownList1.DataSource = t1;
        DropDownList1.DataBind();
        DataList1t.Visible = false;
        DataList1r.Visible = false;
    }
}
protected void Button2_Click(object sender, EventArgs e)
{

    if (DropDownList1.SelectedValue == "1")
    {
        DataList1t.Visible = true;
    }
    else if (DropDownList1.SelectedValue == "2")
        DataList1r.Visible = true;
}
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{

    if (e.Item.ItemType == ListItemType.Item)
    {
        RadioButtonList RadioButtonList1 = (RadioButtonList)e.Item.FindControl("RadioButtonList1");

        int QuestionID = Convert.ToInt32(DataBinder.Eval(e.Item.DataItem, "ID"));
        DataTable dt = DAL.SelectFromTable("SELECT Qus.ID, Qus.CorrectAns, Qus.Ans2, Qus.Ans3 FROM  EkhtbrNafsk INNER JOIN Qus ON EkhtbrNafsk.ID = Qus.Type  WHERE  Qus.ID=" + QuestionID);

        RadioButtonList1.Items.Add(dt.Rows[0][0].ToString());
        RadioButtonList1.Items.Add(dt.Rows[0][1].ToString());
        RadioButtonList1.Items.Add(dt.Rows[0][2].ToString());//Bind the RadiobUttonList here


    }
}

【问题讨论】:

  • 您的代码没有显示您在问题中定义的任何方法。
  • @Shaharyar 因为我真的不知道该怎么做
  • radiobuttonlist 在哪里?
  • 这对你有用吗@AseelAssadi? stackoverflow.com/questions/25614092/…
  • @Sushil 差不多了...我在使用那里的代码时仍然遇到问题...

标签: c# sql asp.net visual-studio


【解决方案1】:

试试这个:

DataTable dt = DAL.SelectFromTable("SELECT Qus.ID, Qus.CorrectAns, Qus.Ans2, Qus.Ans3 FROM EkhtbrNafsk ORDER BY rand() INNER JOIN Qus ON EkhtbrNafsk.ID = Qus.Type  WHERE  Qus.ID=" + QuestionID );

【讨论】:

  • 我试过了......它不起作用...... SQL语句有问题,我认为它是随机的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-27
相关资源
最近更新 更多