RadiobuttonList1.DataSource = 数据集(DataSet或者DataTable.DefaultView)RadiobuttonList.DataTextFiled = 数据集.Table[0].Column["字段名1"];
RadiobuttonList.DataTextFiled = 数据集.Table[0].Column["字段名2"];RadiobuttonList.DataBind();没用过RadiobuttonList,但是我在MobileWebPage上用List是可以这样用的,应该大同小异。具体代码可能不一样(比如是Column还是Columns,记不清楚了),但实现原理应该差不多。
DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
dt.Columns.Add(new DataColumn("DateTimeValue", typeof(DateTime)));
dt.Columns.Add(new DataColumn("BoolValue", typeof(bool)));
dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
for (int i = 0; i < 9; i++) {
dr = dt.NewRow();
dr[0] = i;
dr[1] = "Item " + i.ToString();
dr[2] = DateTime.Now;
dr[3] = (i % 2 != 0) ? true : false;
dr[4] = 1.23 * (i+1);
dt.Rows.Add(dr);
}
DataView dv = new DataView(dt);
return dv;
}
void Page_Load(Object sender, EventArgs e) {
if (!IsPostBack) {
RadioButtonList1.DataSource = CreateDataSource();
RadioButtonList1.DataTextField="StringValue";
RadioButtonList1.DataValueField="CurrencyValue";
RadioButtonList1.DataBind();
}
}
RadiobuttonList.DataValuefiled = 数据集里面对应建 (一般是主建)
{
if(e.Item.ItemIndex >-1)
{
Label lbl = (Lable)e.Item.FindControl("lable1");
string questID = lbl.Text;//问题ID
RadioButtonList tmp = (RadioButtonList)e.Item.FindControl("RadioButtonList1");
tmp.DataSource = getdateByquestID();//自己写这个方法,根据问题id取数据
tmp.DataTextFiled =...;
tmp.DataValueFiled = ...;
tmp.DataBind();
}
}
只有数据库里面有一章表 包括Polls_Question_ID问题ID
Polls_Question(问题)
Polls_Option1,Polls_Option2,Polls_Option3,Polls_Option4,Polls_Option5
都是选项,关键是上面的方法怎么能用SQL语句来完成呢?
前台:
<asp:datalist id="question" runat="server" >
<ItemTemplate>
<%#DataBinder.Eval(Container.DataItem,"Polls_Question")%> <asp:RadioButtonList id=RadioButtonList1 runat="server"
DataSource='<%# GetDataSoure(DataBinder.Eval(Container.DataItem,"Polls_Qutetion_ID").ToString())%>'>
</asp:RadioButtonList>
</ItemTemplate>
</asp:datalist>上面有个GetDataSour的方法,我在后台代码写一个函数,可以显示效果public ArrayList GetDataSoure(string _ID)
{
string conntr=System.Configuration.ConfigurationSettings.AppSettings["connstr"].ToString(); string SQL="SELECT Polls_Option1,Polls_Option2,Polls_Option3,Polls_Option4,Polls_Option5 FROM Polls_Question WHERE Polls_Qutetion_ID='"+_ID.Trim()+"'";
ArrayList ar=new ArrayList();
SqlConnection conn=new SqlConnection(conntr);
SqlCommand comm=new SqlCommand(SQL,conn);
conn.Open();
SqlDataReader dr=comm.ExecuteReader();
dr.Read();
if(dr["Polls_Option1"].ToString()!="")
{
ar.Add(dr["Polls_Option1"].ToString());
}
if(dr["Polls_Option2"].ToString()!="")
{
ar.Add(dr["Polls_Option2"].ToString());
}
if(dr["Polls_Option3"].ToString()!="")
{
ar.Add(dr["Polls_Option3"].ToString());
}
if(dr["Polls_Option4"].ToString()!="")
{
ar.Add(dr["Polls_Option4"].ToString());
}
if(dr["Polls_Option5"].ToString()!="") {
ar.Add(dr["Polls_Option5"].ToString());
}
conn.Close();
//question.FindControl(RadioButtonList1).DataBind();
//RadioButtonList1.DataSource=ar;
//RadioButtonList1.DataTextField=""
//RadioButtonList1.DataBind();
return ar;
}并不能绑定DataValueFiled啊:((1)问题
A;...B:....C:...
依次下去,但是没有用,因为无法绑定DataValueFile所以不能判断客户选了什么
A;...B:....C:...
依次下去,但是没有用,因为无法绑定DataValueFile所以不能判断客户选了什么
--------------------------------------------------------------------------
回应:RadioButtonList 可以横向也可以竖向排列;
为什么就不能多想一下,既然绑定都做了,取有什么难得?
RadioButtonList tmpList = (RadioButtonList)DataList1.Items[???].FindControl("RadioButtonList1");
string answer答案 = tmpList.SelectedValue;不就知道客户选了什么了吗
Polls_Question(问题)
Polls_Option1,Polls_Option2,Polls_Option3,Polls_Option4,Polls_Option5
--------------------------------------------------------------------------
数据表设计得不好,不过先不论
可以把你的GetDataSoure方法改写一下,不要用ArrayList,用DataTable吧