问题描述
现在在做一个B2C网站,商品目录页,根据URL中传递的参数来显示商品。<asp:DataListID="DataList1"runat="server"DataSourceID="SqlDataSource1"><ItemTemplate> <asp:LabelID="pnoLabel"runat="server"Text='<%#Eval("pno")%>'Visible="False"/><asp:LabelID="pnameLabel"runat="server"Text='<%#Eval("pname")%>'/>: <asp:RadioButtonListID="RadioButtonList1"runat="server"AutoPostBack="True"DataSourceID="SqlDataSource2"DataTextField="cname"DataValueField="cno"RepeatDirection="Horizontal"onselectedindexchanged="RadioButtonList1_SelectedIndexChanged"></asp:RadioButtonList><asp:SqlDataSourceID="SqlDataSource2"runat="server"ConnectionString="<%$ConnectionStrings:b2cConnectionString%>"SelectCommand="chooseparameters"SelectCommandType="StoredProcedure"><SelectParameters><asp:QueryStringParameterDefaultValue="a"Name="class"QueryStringField="c0"Type="Char"/><asp:ControlParameterControlID="pnoLabel"DefaultValue="a"Name="pno"PropertyName="Text"Type="Char"/></SelectParameters></asp:SqlDataSource><br/><br/></ItemTemplate></asp:DataList><asp:SqlDataSourceID="SqlDataSource1"runat="server"ConnectionString="<%$ConnectionStrings:b2cConnectionString%>"SelectCommand="getparameterslist"SelectCommandType="StoredProcedure"><SelectParameters><asp:QueryStringParameterDefaultValue="a"Name="class"QueryStringField="c0"Type="Char"/></SelectParameters></asp:SqlDataSource>
数据库中有proparameter参数列表proparameters参数详情表prolist商品表现在的问题有1:怎么默认选择第一项;2:怎么根据选择项到商品表中取商品列表,我试了直接双击创建selected事件,但是不会在后台获得选取值,貌似是因为控件在Datalist里,后台我找了半天也没找到radiobuttonlist1.SelectedValue。原本不想用Datalist的,不过用别的更不会写,我的想法是根据URL参数c0来判断商品种类,然后根据种类去数据库取出参数列表,把选择的参数放到URL后面,再根据URL中的参数来显示商品。本人纯属初学者,求各路大神多多指教
解决方案
本帖最后由 ty757420455 于 2015-06-11 12:56:46 编辑
解决方案二:
B2C网站……居然还都是服务器控件……1、数据绑定后,执行rd.SelectedIndex=0;
2、崩溃,你居然不是用的一个个的RadioButtonList,,而是DataList!
解决方案三:
引用1楼starfd的回复:
B2C网站……居然还都是服务器控件……1、数据绑定后,执行rd.SelectedIndex=0;2、崩溃,你居然不是用的一个个的RadioButtonList,,而是DataList!
本人初学,因为不会根据参数的数量循环输出RadioButtonList,只好在datalist里嵌入RadioButtonList另外,也因为如此,第一个问题中,使用的sqldatasouce来给radiobuttonlist赋值,不会在后台数据绑定,前台控件没有SelectedIndex属性
解决方案四:
建议看些入门书或资料吧做开发不会在后台获得选取值怎么能行呢现在告诉你怎么解决这个问题是授之以鱼不是渔