手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >asp.net下无法循环绑定投票的标题和选项的解决方法
asp.net下无法循环绑定投票的标题和选项的解决方法
摘要:问题:1,无法循环绑定投票的标题和选项解决方法:在Repeater绑定中添加ItemDataBound事件,选项用RadioButtonLi...

问题:1,无法循环绑定投票的标题和选项

解决方法: 在Repeater绑定中添加ItemDataBound事件,选项用RadioButtonList绑定,附源代码:

Default页,源页面

复制代码 代码如下:

<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" Text="提交" />

<asp:Button ID="Button2" runat="server" Text="查看结果" />

</div>

对应的cs页:

复制代码 代码如下:

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();

}

问题2: 无法循环获得用户的选择

解决方法: 先循环Repeater控件的Item获得RadioButtonList控件,循环检测是否为选中状态,,如果是则拼接到一个字符串中,

再把题目的编号获得拼接起来,循环添加,附源代码:

Default的cs页:

复制代码 代码如下:

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页:

复制代码 代码如下:

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;

}

所掌握的技巧:

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;

【asp.net下无法循环绑定投票的标题和选项的解决方法】相关文章:

asp.net发邮件的几种方法汇总

asp.net“服务器应用程序不可用” 解决方法

asp.net中包含文件的代码及使用方法

asp.net程序编译调试时偶尔出现访问被拒绝的错误的解决方法

asp.net动态加载自定义控件的方法

Asp.net下载功能的解决方案代码

ASP.NET State service状态服务的问题解决方法

asp.net开发与web标准的冲突问题的一些常见解决方法

asp.net 2.0多语言网站解决方法

asp.net下Request.QueryString取不到值的解决方法

精品推荐
分类导航