源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

asp.net下无法循环绑定投票的标题和选项的解决方法

  • 时间:2022-10-21 00:01 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:asp.net下无法循环绑定投票的标题和选项的解决方法
[b]问题:1,无法循环绑定投票的标题和选项 [/b]解决方法: 在Repeater绑定中添加ItemDataBound事件,选项用RadioButtonList绑定,附源代码: Default页,源页面
[u]复制代码[/u] 代码如下:
<div> 广大网友对保障房建设相关问题调查<br /> <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound"> <ItemTemplate> <table> <tr> <td colspan="3"> <b> <%# Eval("t_timu")%> <asp:Literal ID="Literal1" Text='<%# Eval("t_id")%>' runat="server"></asp:Literal> </b> </td> </tr> <tr> <asp:RadioButtonList ID="RadioButtonList1" runat="server" RepeatDirection="Horizontal"> </asp:RadioButtonList> </tr> </table> </ItemTemplate> </asp:Repeater> <br /> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="提交" />  <asp:Button ID="Button2" runat="server" Text="查看结果" OnClick="Button2_Click" /> </div>
对应的cs页:
[u]复制代码[/u] 代码如下:
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { Literal Literal1 = (Literal)e.Item.FindControl("Literal1"); RadioButtonList RadioButtonList1 = (RadioButtonList)e.Item.FindControl("RadioButtonList1"); RadioButtonList1.DataSource = dcw_toupiao_M.dcw_toupiao_getxuanxian(Convert.ToInt32(Literal1.Text)); RadioButtonList1.DataTextField = "x_name"; RadioButtonList1.DataValueField = "x_id"; RadioButtonList1.DataBind(); }
[b]问题2: 无法循环获得用户的选择 [/b]解决方法: 先循环Repeater控件的Item获得RadioButtonList控件,循环检测是否为选中状态,,如果是则拼接到一个字符串中, 再把题目的编号获得拼接起来,循环添加,附源代码: Default的cs页:
[u]复制代码[/u] 代码如下:
protected void Button1_Click(object sender, EventArgs e) { string zifu = ""; string Pid = ""; int tiaoshu = 5; foreach (RepeaterItem iemt in Repeater1.Items) { RadioButtonList rbtn = iemt.FindControl("RadioButtonList1") as RadioButtonList; try { if (rbtn.SelectedItem.Selected) { zifu += rbtn.SelectedItem.Value + ","; } Literal Literal1 = (Literal)iemt.FindControl("Literal1"); //e.Item.FindControl(""); if (Literal1.Text != "") { Pid += Literal1.Text + ","; } } catch (Exception ex) { } } string[] xid = null; xid = zifu.TrimEnd(',').Split(','); string[] pid = null; pid = Pid.TrimEnd(',').Split(','); if (dcw_toupiao_M.dcw_toupiao_Insert(xid, pid, tiaoshu)) { this.ClientScript.RegisterClientScriptBlock(typeof(string), "ok", "<script>alert('投票成功!谢谢参与')</script>"); } else { this.ClientScript.RegisterClientScriptBlock(typeof(string), "ok", "<script>alert('请完成选择')</script>"); } }
DAL页:
[u]复制代码[/u] 代码如下:
public static bool dcw_toupiao_Insert(string[] xid, string[] pid, int tiaoshu) { bool flag = false; for (int i = 0; i < pid.Length; i++) { SqlParameter[] prm = new SqlParameter[2]; prm[0] = new SqlParameter("@xid", Int32.Parse(xid[i])); prm[1] = new SqlParameter("@pid", Int32.Parse(pid[i])); if (dcw_toupiao_M.dcw_toupiao_gettcount(Convert.ToInt32(xid[i]), Convert.ToInt32(pid[i]))) { flag = _dc_toupiao_DB.SqlHelper.ExeucteNonQuery("sm_dcw_toupiao_Insert", CommandType.StoredProcedure, prm) > 0; } } return flag; }
[b]所掌握的技巧: [/b]JavaScript跳转: this.ClientScript.RegisterClientScriptBlock(typeof(string), "ok", "<script>alert('投票成功!谢谢参与')</script>"); 两种获得控件的方法: Literal Literal1 = (Literal)e.Item.FindControl("Literal1"); Literal Literal1 = e.Item.FindControl("Literal1") as Literal;
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部