asp.net中repeater嵌套CheckBoxList,RadioButtonList来完成投票
2009-04-22 21:31
543 查看
<table height="286" cellSpacing="0" cellPadding="0" width="1000" align="center" bgColor="#ffffff"
border="0">
<tbody>
<tr>
<td vAlign="top" height="286">
<div align="left">
<table height="32" cellSpacing="0" cellPadding="0" width="968" align="center" border="0">
<tbody>
<tr>
<td>
<div align="center"></div>
<div align="center"><strong><%=Title%></strong><br>
</div>
</td>
</tr>
</tbody>
</table>
<table cellSpacing="0" cellPadding="0" width="915" align="center" border="0">
<tbody>
<tr>
<td background="../../images/house4_07.jpg" height="1"><FONT face="宋体"></FONT></td>
</tr>
<tr>
<td>
<table cellSpacing="0" cellPadding="0" width="915" border="0">
<asp:repeater id="Repeater1" Runat="server">
<ItemTemplate>
<tr>
<td>
<%# DataBinder.Eval(Container, "DataItem.FVoteName") %>
<table width="85%" align="center" border="1" bordercolor="#D6E7FF" cellpadding="0" cellspacing="0">
<tr>
<td>
<asp:CheckBoxList id="cb" Runat="server" Visible="False"></asp:CheckBoxList>
<asp:RadioButtonList ID="rb" Runat="server" Visible="False"></asp:RadioButtonList>
<asp:TextBox ID="tb" TextMode="MultiLine" Columns="40" Rows="4" Runat="server" Visible="False"></asp:TextBox>
<input type="hidden" id="hb" runat="server" />
</td>
</tr>
</table>
</td>
</tr>
</ItemTemplate>
</asp:repeater></table>
</td>
</tr>
<tr>
<td align="center"><asp:button id="btnAdd" runat="server" Text="提交"></asp:button></td>
</tr>
</tbody>
</table>
</div>
<div align="right"></div>
</td>
</tr>
</tbody>
</table>
2,后台代码
view plaincopy to clipboardprint?
<PRE class=csharp name="code">protected System.Web.UI.WebControls.Repeater Repeater1;
public Seaskyer.Modules.Utils.DBClass db = new Seaskyer.Modules.Utils.DBClass();
protected System.Web.UI.WebControls.Button btnAdd;
public string Title;
//public string cid;
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
string cid = "";
if(db.q("id")!="")
{
cid=db.q("id");
}
Title = db.getSingleValue("cms_VotePro","FProName","FID",cid);
BindRep();
}
}
/// <summary>
/// 绑定Repeater控件,显示调查中的大类
/// </summary>
public void BindRep()
{
string strsql = "select * from cms_vote where FProID='"+db.q("id")+"'";
db.dp.CommandText = strsql;
DataTable dt = db.dp.DataTableSQL();
if(dt.Rows.Count>0)
{
this.Repeater1.DataSource = dt;
this.Repeater1.DataBind();
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Repeater1.ItemDataBound += new System.Web.UI.WebControls.RepeaterItemEventHandler(this.Repeater1_ItemDataBound);
this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void Repeater1_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
CheckBoxList cb = (CheckBoxList)e.Item.FindControl("cb");
RadioButtonList rb = (RadioButtonList)e.Item.FindControl("rb");
TextBox tb = (TextBox)e.Item.FindControl("tb");
System.Web.UI.HtmlControls.HtmlInputHidden hb = (HtmlInputHidden)e.Item.FindControl("hb");
DataRowView rowv = (DataRowView)e.Item.DataItem;
//提取分类ID
string Fid = rowv["FVoteId"].ToString();
string type = rowv["FType"].ToString();
string strsql = "select * from cms_VoteItem where FVoteId='"+Fid+"'";
//Response.Write("<script>alert('"+strsql+"');</script>");
db.dp.CommandText = strsql;
DataTable dt = db.dp.DataTableSQL();
switch(Convert.ToInt32(type))
{
case 1:
rb.Visible = true;
cb.Visible = false;
tb.Visible = false;
rb.DataSource = dt;
rb.DataTextField = "FItemName";
rb.DataValueField = "FID";
rb.DataBind();
break;
case 2:
rb.Visible = false;
cb.Visible = true;
tb.Visible = false;
cb.DataSource = dt;
cb.DataTextField = "FItemName";
cb.DataValueField = "FID";
cb.DataBind();
break;
case 3:
tb.Visible = true;
rb.Visible = false;
cb.Visible = false;
break;
}
}
private void btnAdd_Click(object sender, System.EventArgs e)
{
string cb = "";//复选框
string rb = "";//单选框
string tb = "";//如果有文本框
foreach (RepeaterItem item in this.Repeater1.Items)
{
CheckBoxList cb1 = (CheckBoxList)item.FindControl("cb");
RadioButtonList rb1 = (RadioButtonList)item.FindControl("rb");
TextBox tb1 = (TextBox)item.FindControl("tb");
//CheckBox cb = (CheckBox)item.FindControl("CheckBoxRole");
if(cb1.Visible==true)
{
for(int i=0;i<cb1.Items.Count;i++)
{
if(cb1.Items[i].Selected==true)
{
cb += "'"+cb1.Items[i].Value+"'" + ",";
}
}
}
if(rb1.Visible==true)
{
for(int i=0;i<rb1.Items.Count;i++)
{
if(rb1.Items[i].Selected==true)
{
rb = "'"+rb1.Items[i].Value+"'";
}
}
}
if(tb1.Visible==true)
{
tb = tb1.Text + "|";
}
}
string id = "";
if(cb.Trim()!="")
{
cb = cb.Substring(0,cb.Length-1);
id = cb;
}
if(rb.Trim()!="")
{
if(id.Trim()!="")
{
id += "," + rb;
}
else
{
id += rb;
}
}
//id = cb + rb;
if(id.Trim()=="")
{
Response.Write("<script>alert('你没有进行选择!');history.go(-1);</script>");
}
string strsql = "update cms_VoteItem set FItemNum=FItemNum+1 where FID in ("+id+")";
db.dp.CommandText = strsql;
db.dp.ExecuteNonQuery();
Response.Write("<script>alert('投票结束!');location.href='VoteView.aspx?id="+db.q("id")+"';</script>");
// Response.Write(id);
}</PRE>
3,显示投票结果前台
view plaincopy to clipboardprint?
<table height="286" cellSpacing="0" cellPadding="0" width="1000" align="center" bgColor="#ffffff"
border="0">
<tbody>
<tr>
<td vAlign="top" height="286">
<div align="left">
<table height="32" cellSpacing="0" cellPadding="0" width="968" align="center" border="0">
<tbody>
<tr>
<td>
<div align="center"></div>
<div align="center"><strong><%=Title%></strong><br>
</div>
</td>
</tr>
</tbody>
</table>
<table cellSpacing="0" cellPadding="0" width="915" align="center" border="0">
<tbody>
<tr>
<td background="../../images/house4_07.jpg" height="1"><FONT face="宋体"></FONT></td>
</tr>
<tr>
<td>
<table cellSpacing="0" cellPadding="0" width="915" border="0">
<asp:repeater id="Repeater1" Runat="server">
<ItemTemplate>
<tr>
<td>
<%# DataBinder.Eval(Container, "DataItem.FVoteName") %>
<asp:Repeater ID="rep" Runat="server">
<ItemTemplate>
<table width="85%" align="center" border="1" bordercolor="#D6E7FF" cellpadding="0" cellspacing="0">
<tr>
<td width="10%">
选项:
</td width="20%">
<td><%# DataBinder.Eval(Container, "DataItem.FItemName") %></td>
<td width="10%">票数:</td>
<td width="10%"><%# DataBinder.Eval(Container, "DataItem.FItemNum") %></td>
<td width="10%">百分比:</td>
<td width="40%"><img src="images/654.gif" height="5" width="<%# IsViews(DataBinder.Eval(Container, "DataItem.FVoteId").ToString(),DataBinder.Eval(Container, "DataItem.FItemNum").ToString()) %>"><%# IsView(DataBinder.Eval(Container, "DataItem.FVoteId").ToString(),DataBinder.Eval(Container, "DataItem.FItemNum").ToString()) %></td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
</td>
</tr>
</ItemTemplate>
</asp:repeater></table>
</td>
</tr>
<tr>
<td align="center"></td>
</tr>
</tbody>
</table>
</div>
<div align="right"><FONT face="宋体"></FONT></div>
</td>
</tr>
</tbody>
</table>
4,后台代码
view plaincopy to clipboardprint?
protected System.Web.UI.WebControls.Repeater Repeater1; public Seaskyer.Modules.Utils.DBClass db = new Seaskyer.Modules.Utils.DBClass(); public string Title; //public string cid; private void Page_Load(object sender, System.EventArgs e) { if(!Page.IsPostBack) { string cid = ""; if(db.q("id")!="") { cid=db.q("id"); } Title = db.getSingleValue("cms_VotePro","FProName","FID",cid); BindRep(); } } /// <summary> /// 绑定Repeater控件,显示调查中的大类 /// </summary> public void BindRep() { string strsql = "select * from cms_vote where FProID='"+db.q("id")+"'"; db.dp.CommandText = strsql; DataTable dt = db.dp.DataTableSQL(); if(dt.Rows.Count>0) { this.Repeater1.DataSource = dt; this.Repeater1.DataBind(); } } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Repeater1.ItemDataBound += new System.Web.UI.WebControls.RepeaterItemEventHandler(this.Repeater1_ItemDataBound); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void Repeater1_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e) { Repeater rep = (Repeater)e.Item.FindControl("rep"); DataRowView rowv = (DataRowView)e.Item.DataItem; //提取分类ID string Fid = rowv["FVoteId"].ToString(); string strsql = "select * from cms_VoteItem where FVoteId='"+Fid+"'"; //Response.Write("<script>alert('"+strsql+"');</script>"); db.dp.CommandText = strsql; DataTable dt = db.dp.DataTableSQL(); rep.DataSource = dt; rep.DataBind(); } public string IsView(string cid,string num) { string strsql = "select sum(FItemNum) from cms_VoteItem where FVoteId='"+cid+"'"; db.dp.CommandText = strsql; DataTable dt = db.dp.DataTableSQL(); double Sums = Convert.ToInt32(dt.Rows[0][0].ToString()); if(num=="0") return "0%"; else return (Convert.ToDouble(num)/Sums).ToString("P"); } public string IsViews(string cid,string num) { string strsql = "select sum(FItemNum) from cms_VoteItem where FVoteId='"+cid+"'"; db.dp.CommandText = strsql; DataTable dt = db.dp.DataTableSQL(); double Sums = Convert.ToInt32(dt.Rows[0][0].ToString()); if(num=="0") return "0%"; else return (Convert.ToDouble(num)/Sums*300).ToString(); }
其中的表cms_VotePro是记录复式的主标题 cms_vote是记录投票项 cms_VoteItem是最后的小项了
border="0">
<tbody>
<tr>
<td vAlign="top" height="286">
<div align="left">
<table height="32" cellSpacing="0" cellPadding="0" width="968" align="center" border="0">
<tbody>
<tr>
<td>
<div align="center"></div>
<div align="center"><strong><%=Title%></strong><br>
</div>
</td>
</tr>
</tbody>
</table>
<table cellSpacing="0" cellPadding="0" width="915" align="center" border="0">
<tbody>
<tr>
<td background="../../images/house4_07.jpg" height="1"><FONT face="宋体"></FONT></td>
</tr>
<tr>
<td>
<table cellSpacing="0" cellPadding="0" width="915" border="0">
<asp:repeater id="Repeater1" Runat="server">
<ItemTemplate>
<tr>
<td>
<%# DataBinder.Eval(Container, "DataItem.FVoteName") %>
<table width="85%" align="center" border="1" bordercolor="#D6E7FF" cellpadding="0" cellspacing="0">
<tr>
<td>
<asp:CheckBoxList id="cb" Runat="server" Visible="False"></asp:CheckBoxList>
<asp:RadioButtonList ID="rb" Runat="server" Visible="False"></asp:RadioButtonList>
<asp:TextBox ID="tb" TextMode="MultiLine" Columns="40" Rows="4" Runat="server" Visible="False"></asp:TextBox>
<input type="hidden" id="hb" runat="server" />
</td>
</tr>
</table>
</td>
</tr>
</ItemTemplate>
</asp:repeater></table>
</td>
</tr>
<tr>
<td align="center"><asp:button id="btnAdd" runat="server" Text="提交"></asp:button></td>
</tr>
</tbody>
</table>
</div>
<div align="right"></div>
</td>
</tr>
</tbody>
</table>
<table height="286" cellSpacing="0" cellPadding="0" width="1000" align="center" bgColor="#ffffff" border="0"> <tbody> <tr> <td vAlign="top" height="286"> <div align="left"> <table height="32" cellSpacing="0" cellPadding="0" width="968" align="center" border="0"> <tbody> <tr> <td> <div align="center"></div> <div align="center"><strong><%=Title%></strong><br> </div> </td> </tr> </tbody> </table> <table cellSpacing="0" cellPadding="0" width="915" align="center" border="0"> <tbody> <tr> <td background="../../images/house4_07.jpg" height="1"><FONT face="宋体"></FONT></td> </tr> <tr> <td> <table cellSpacing="0" cellPadding="0" width="915" border="0"> <asp:repeater id="Repeater1" Runat="server"> <ItemTemplate> <tr> <td> <%# DataBinder.Eval(Container, "DataItem.FVoteName") %> <table width="85%" align="center" border="1" bordercolor="#D6E7FF" cellpadding="0" cellspacing="0"> <tr> <td> <asp:CheckBoxList id="cb" Runat="server" Visible="False"></asp:CheckBoxList> <asp:RadioButtonList ID="rb" Runat="server" Visible="False"></asp:RadioButtonList> <asp:TextBox ID="tb" TextMode="MultiLine" Columns="40" Rows="4" Runat="server" Visible="False"></asp:TextBox> <input type="hidden" id="hb" runat="server" /> </td> </tr> </table> </td> </tr> </ItemTemplate> </asp:repeater></table> </td> </tr> <tr> <td align="center"><asp:button id="btnAdd" runat="server" Text="提交"></asp:button></td> </tr> </tbody> </table> </div> <div align="right"></div> </td> </tr> </tbody> </table>
2,后台代码
view plaincopy to clipboardprint?
<PRE class=csharp name="code">protected System.Web.UI.WebControls.Repeater Repeater1;
public Seaskyer.Modules.Utils.DBClass db = new Seaskyer.Modules.Utils.DBClass();
protected System.Web.UI.WebControls.Button btnAdd;
public string Title;
//public string cid;
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
string cid = "";
if(db.q("id")!="")
{
cid=db.q("id");
}
Title = db.getSingleValue("cms_VotePro","FProName","FID",cid);
BindRep();
}
}
/// <summary>
/// 绑定Repeater控件,显示调查中的大类
/// </summary>
public void BindRep()
{
string strsql = "select * from cms_vote where FProID='"+db.q("id")+"'";
db.dp.CommandText = strsql;
DataTable dt = db.dp.DataTableSQL();
if(dt.Rows.Count>0)
{
this.Repeater1.DataSource = dt;
this.Repeater1.DataBind();
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Repeater1.ItemDataBound += new System.Web.UI.WebControls.RepeaterItemEventHandler(this.Repeater1_ItemDataBound);
this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void Repeater1_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
CheckBoxList cb = (CheckBoxList)e.Item.FindControl("cb");
RadioButtonList rb = (RadioButtonList)e.Item.FindControl("rb");
TextBox tb = (TextBox)e.Item.FindControl("tb");
System.Web.UI.HtmlControls.HtmlInputHidden hb = (HtmlInputHidden)e.Item.FindControl("hb");
DataRowView rowv = (DataRowView)e.Item.DataItem;
//提取分类ID
string Fid = rowv["FVoteId"].ToString();
string type = rowv["FType"].ToString();
string strsql = "select * from cms_VoteItem where FVoteId='"+Fid+"'";
//Response.Write("<script>alert('"+strsql+"');</script>");
db.dp.CommandText = strsql;
DataTable dt = db.dp.DataTableSQL();
switch(Convert.ToInt32(type))
{
case 1:
rb.Visible = true;
cb.Visible = false;
tb.Visible = false;
rb.DataSource = dt;
rb.DataTextField = "FItemName";
rb.DataValueField = "FID";
rb.DataBind();
break;
case 2:
rb.Visible = false;
cb.Visible = true;
tb.Visible = false;
cb.DataSource = dt;
cb.DataTextField = "FItemName";
cb.DataValueField = "FID";
cb.DataBind();
break;
case 3:
tb.Visible = true;
rb.Visible = false;
cb.Visible = false;
break;
}
}
private void btnAdd_Click(object sender, System.EventArgs e)
{
string cb = "";//复选框
string rb = "";//单选框
string tb = "";//如果有文本框
foreach (RepeaterItem item in this.Repeater1.Items)
{
CheckBoxList cb1 = (CheckBoxList)item.FindControl("cb");
RadioButtonList rb1 = (RadioButtonList)item.FindControl("rb");
TextBox tb1 = (TextBox)item.FindControl("tb");
//CheckBox cb = (CheckBox)item.FindControl("CheckBoxRole");
if(cb1.Visible==true)
{
for(int i=0;i<cb1.Items.Count;i++)
{
if(cb1.Items[i].Selected==true)
{
cb += "'"+cb1.Items[i].Value+"'" + ",";
}
}
}
if(rb1.Visible==true)
{
for(int i=0;i<rb1.Items.Count;i++)
{
if(rb1.Items[i].Selected==true)
{
rb = "'"+rb1.Items[i].Value+"'";
}
}
}
if(tb1.Visible==true)
{
tb = tb1.Text + "|";
}
}
string id = "";
if(cb.Trim()!="")
{
cb = cb.Substring(0,cb.Length-1);
id = cb;
}
if(rb.Trim()!="")
{
if(id.Trim()!="")
{
id += "," + rb;
}
else
{
id += rb;
}
}
//id = cb + rb;
if(id.Trim()=="")
{
Response.Write("<script>alert('你没有进行选择!');history.go(-1);</script>");
}
string strsql = "update cms_VoteItem set FItemNum=FItemNum+1 where FID in ("+id+")";
db.dp.CommandText = strsql;
db.dp.ExecuteNonQuery();
Response.Write("<script>alert('投票结束!');location.href='VoteView.aspx?id="+db.q("id")+"';</script>");
// Response.Write(id);
}</PRE>
view plaincopy to clipboardprint?protected System.Web.UI.WebControls.Repeater Repeater1; public Seaskyer.Modules.Utils.DBClass db = new Seaskyer.Modules.Utils.DBClass(); protected System.Web.UI.WebControls.Button btnAdd; public string Title; //public string cid; private void Page_Load(object sender, System.EventArgs e) { if(!Page.IsPostBack) { string cid = ""; if(db.q("id")!="") { cid=db.q("id"); } Title = db.getSingleValue("cms_VotePro","FProName","FID",cid); BindRep(); } } /// <summary> /// 绑定Repeater控件,显示调查中的大类 /// </summary> public void BindRep() { string strsql = "select * from cms_vote where FProID='"+db.q("id")+"'"; db.dp.CommandText = strsql; DataTable dt = db.dp.DataTableSQL(); if(dt.Rows.Count>0) { this.Repeater1.DataSource = dt; this.Repeater1.DataBind(); } } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Repeater1.ItemDataBound += new System.Web.UI.WebControls.RepeaterItemEventHandler(this.Repeater1_ItemDataBound); this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void Repeater1_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e) { CheckBoxList cb = (CheckBoxList)e.Item.FindControl("cb"); RadioButtonList rb = (RadioButtonList)e.Item.FindControl("rb"); TextBox tb = (TextBox)e.Item.FindControl("tb"); System.Web.UI.HtmlControls.HtmlInputHidden hb = (HtmlInputHidden)e.Item.FindControl("hb"); DataRowView rowv = (DataRowView)e.Item.DataItem; //提取分类ID string Fid = rowv["FVoteId"].ToString(); string type = rowv["FType"].ToString(); string strsql = "select * from cms_VoteItem where FVoteId='"+Fid+"'"; //Response.Write("<script>alert('"+strsql+"');</script>"); db.dp.CommandText = strsql; DataTable dt = db.dp.DataTableSQL(); switch(Convert.ToInt32(type)) { case 1: rb.Visible = true; cb.Visible = false; tb.Visible = false; rb.DataSource = dt; rb.DataTextField = "FItemName"; rb.DataValueField = "FID"; rb.DataBind(); break; case 2: rb.Visible = false; cb.Visible = true; tb.Visible = false; cb.DataSource = dt; cb.DataTextField = "FItemName"; cb.DataValueField = "FID"; cb.DataBind(); break; case 3: tb.Visible = true; rb.Visible = false; cb.Visible = false; break; } } private void btnAdd_Click(object sender, System.EventArgs e) { string cb = "";//复选框 string rb = "";//单选框 string tb = "";//如果有文本框 foreach (RepeaterItem item in this.Repeater1.Items) { CheckBoxList cb1 = (CheckBoxList)item.FindControl("cb"); RadioButtonList rb1 = (RadioButtonList)item.FindControl("rb"); TextBox tb1 = (TextBox)item.FindControl("tb"); //CheckBox cb = (CheckBox)item.FindControl("CheckBoxRole"); if(cb1.Visible==true) { for(int i=0;i<cb1.Items.Count;i++) { if(cb1.Items[i].Selected==true) { cb += "'"+cb1.Items[i].Value+"'" + ","; } } } if(rb1.Visible==true) { for(int i=0;i<rb1.Items.Count;i++) { if(rb1.Items[i].Selected==true) { rb = "'"+rb1.Items[i].Value+"'"; } } } if(tb1.Visible==true) { tb = tb1.Text + "|"; } } string id = ""; if(cb.Trim()!="") { cb = cb.Substring(0,cb.Length-1); id = cb; } if(rb.Trim()!="") { if(id.Trim()!="") { id += "," + rb; } else { id += rb; } } //id = cb + rb; if(id.Trim()=="") { Response.Write("<script>alert('你没有进行选择!');history.go(-1);</script>"); } string strsql = "update cms_VoteItem set FItemNum=FItemNum+1 where FID in ("+id+")"; db.dp.CommandText = strsql; db.dp.ExecuteNonQuery(); Response.Write("<script>alert('投票结束!');location.href='VoteView.aspx?id="+db.q("id")+"';</script>"); // Response.Write(id); } protected System.Web.UI.WebControls.Repeater Repeater1; public Seaskyer.Modules.Utils.DBClass db = new Seaskyer.Modules.Utils.DBClass(); protected System.Web.UI.WebControls.Button btnAdd; public string Title; //public string cid; private void Page_Load(object sender, System.EventArgs e) { if(!Page.IsPostBack) { string cid = ""; if(db.q("id")!="") { cid=db.q("id"); } Title = db.getSingleValue("cms_VotePro","FProName","FID",cid); BindRep(); } } /// <summary> /// 绑定Repeater控件,显示调查中的大类 /// </summary> public void BindRep() { string strsql = "select * from cms_vote where FProID='"+db.q("id")+"'"; db.dp.CommandText = strsql; DataTable dt = db.dp.DataTableSQL(); if(dt.Rows.Count>0) { this.Repeater1.DataSource = dt; this.Repeater1.DataBind(); } } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Repeater1.ItemDataBound += new System.Web.UI.WebControls.RepeaterItemEventHandler(this.Repeater1_ItemDataBound); this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void Repeater1_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e) { CheckBoxList cb = (CheckBoxList)e.Item.FindControl("cb"); RadioButtonList rb = (RadioButtonList)e.Item.FindControl("rb"); TextBox tb = (TextBox)e.Item.FindControl("tb"); System.Web.UI.HtmlControls.HtmlInputHidden hb = (HtmlInputHidden)e.Item.FindControl("hb"); DataRowView rowv = (DataRowView)e.Item.DataItem; //提取分类ID string Fid = rowv["FVoteId"].ToString(); string type = rowv["FType"].ToString(); string strsql = "select * from cms_VoteItem where FVoteId='"+Fid+"'"; //Response.Write("<script>alert('"+strsql+"');</script>"); db.dp.CommandText = strsql; DataTable dt = db.dp.DataTableSQL(); switch(Convert.ToInt32(type)) { case 1: rb.Visible = true; cb.Visible = false; tb.Visible = false; rb.DataSource = dt; rb.DataTextField = "FItemName"; rb.DataValueField = "FID"; rb.DataBind(); break; case 2: rb.Visible = false; cb.Visible = true; tb.Visible = false; cb.DataSource = dt; cb.DataTextField = "FItemName"; cb.DataValueField = "FID"; cb.DataBind(); break; case 3: tb.Visible = true; rb.Visible = false; cb.Visible = false; break; } } private void btnAdd_Click(object sender, System.EventArgs e) { string cb = "";//复选框 string rb = "";//单选框 string tb = "";//如果有文本框 foreach (RepeaterItem item in this.Repeater1.Items) { CheckBoxList cb1 = (CheckBoxList)item.FindControl("cb"); RadioButtonList rb1 = (RadioButtonList)item.FindControl("rb"); TextBox tb1 = (TextBox)item.FindControl("tb"); //CheckBox cb = (CheckBox)item.FindControl("CheckBoxRole"); if(cb1.Visible==true) { for(int i=0;i<cb1.Items.Count;i++) { if(cb1.Items[i].Selected==true) { cb += "'"+cb1.Items[i].Value+"'" + ","; } } } if(rb1.Visible==true) { for(int i=0;i<rb1.Items.Count;i++) { if(rb1.Items[i].Selected==true) { rb = "'"+rb1.Items[i].Value+"'"; } } } if(tb1.Visible==true) { tb = tb1.Text + "|"; } } string id = ""; if(cb.Trim()!="") { cb = cb.Substring(0,cb.Length-1); id = cb; } if(rb.Trim()!="") { if(id.Trim()!="") { id += "," + rb; } else { id += rb; } } //id = cb + rb; if(id.Trim()=="") { Response.Write("<script>alert('你没有进行选择!');history.go(-1);</script>"); } string strsql = "update cms_VoteItem set FItemNum=FItemNum+1 where FID in ("+id+")"; db.dp.CommandText = strsql; db.dp.ExecuteNonQuery(); Response.Write("<script>alert('投票结束!');location.href='VoteView.aspx?id="+db.q("id")+"';</script>"); // Response.Write(id); }
3,显示投票结果前台
view plaincopy to clipboardprint?
<table height="286" cellSpacing="0" cellPadding="0" width="1000" align="center" bgColor="#ffffff"
border="0">
<tbody>
<tr>
<td vAlign="top" height="286">
<div align="left">
<table height="32" cellSpacing="0" cellPadding="0" width="968" align="center" border="0">
<tbody>
<tr>
<td>
<div align="center"></div>
<div align="center"><strong><%=Title%></strong><br>
</div>
</td>
</tr>
</tbody>
</table>
<table cellSpacing="0" cellPadding="0" width="915" align="center" border="0">
<tbody>
<tr>
<td background="../../images/house4_07.jpg" height="1"><FONT face="宋体"></FONT></td>
</tr>
<tr>
<td>
<table cellSpacing="0" cellPadding="0" width="915" border="0">
<asp:repeater id="Repeater1" Runat="server">
<ItemTemplate>
<tr>
<td>
<%# DataBinder.Eval(Container, "DataItem.FVoteName") %>
<asp:Repeater ID="rep" Runat="server">
<ItemTemplate>
<table width="85%" align="center" border="1" bordercolor="#D6E7FF" cellpadding="0" cellspacing="0">
<tr>
<td width="10%">
选项:
</td width="20%">
<td><%# DataBinder.Eval(Container, "DataItem.FItemName") %></td>
<td width="10%">票数:</td>
<td width="10%"><%# DataBinder.Eval(Container, "DataItem.FItemNum") %></td>
<td width="10%">百分比:</td>
<td width="40%"><img src="images/654.gif" height="5" width="<%# IsViews(DataBinder.Eval(Container, "DataItem.FVoteId").ToString(),DataBinder.Eval(Container, "DataItem.FItemNum").ToString()) %>"><%# IsView(DataBinder.Eval(Container, "DataItem.FVoteId").ToString(),DataBinder.Eval(Container, "DataItem.FItemNum").ToString()) %></td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
</td>
</tr>
</ItemTemplate>
</asp:repeater></table>
</td>
</tr>
<tr>
<td align="center"></td>
</tr>
</tbody>
</table>
</div>
<div align="right"><FONT face="宋体"></FONT></div>
</td>
</tr>
</tbody>
</table>
<table height="286" cellSpacing="0" cellPadding="0" width="1000" align="center" bgColor="#ffffff" border="0"> <tbody> <tr> <td vAlign="top" height="286"> <div align="left"> <table height="32" cellSpacing="0" cellPadding="0" width="968" align="center" border="0"> <tbody> <tr> <td> <div align="center"></div> <div align="center"><strong><%=Title%></strong><br> </div> </td> </tr> </tbody> </table> <table cellSpacing="0" cellPadding="0" width="915" align="center" border="0"> <tbody> <tr> <td background="../../images/house4_07.jpg" height="1"><FONT face="宋体"></FONT></td> </tr> <tr> <td> <table cellSpacing="0" cellPadding="0" width="915" border="0"> <asp:repeater id="Repeater1" Runat="server"> <ItemTemplate> <tr> <td> <%# DataBinder.Eval(Container, "DataItem.FVoteName") %> <asp:Repeater ID="rep" Runat="server"> <ItemTemplate> <table width="85%" align="center" border="1" bordercolor="#D6E7FF" cellpadding="0" cellspacing="0"> <tr> <td width="10%"> 选项: </td width="20%"> <td><%# DataBinder.Eval(Container, "DataItem.FItemName") %></td> <td width="10%">票数:</td> <td width="10%"><%# DataBinder.Eval(Container, "DataItem.FItemNum") %></td> <td width="10%">百分比:</td> <td width="40%"><img src="images/654.gif" height="5" width="<%# IsViews(DataBinder.Eval(Container, "DataItem.FVoteId").ToString(),DataBinder.Eval(Container, "DataItem.FItemNum").ToString()) %>"><%# IsView(DataBinder.Eval(Container, "DataItem.FVoteId").ToString(),DataBinder.Eval(Container, "DataItem.FItemNum").ToString()) %></td> </tr> </table> </ItemTemplate> </asp:Repeater> </td> </tr> </ItemTemplate> </asp:repeater></table> </td> </tr> <tr> <td align="center"></td> </tr> </tbody> </table> </div> <div align="right"><FONT face="宋体"></FONT></div> </td> </tr> </tbody> </table>
4,后台代码
view plaincopy to clipboardprint?
protected System.Web.UI.WebControls.Repeater Repeater1; public Seaskyer.Modules.Utils.DBClass db = new Seaskyer.Modules.Utils.DBClass(); public string Title; //public string cid; private void Page_Load(object sender, System.EventArgs e) { if(!Page.IsPostBack) { string cid = ""; if(db.q("id")!="") { cid=db.q("id"); } Title = db.getSingleValue("cms_VotePro","FProName","FID",cid); BindRep(); } } /// <summary> /// 绑定Repeater控件,显示调查中的大类 /// </summary> public void BindRep() { string strsql = "select * from cms_vote where FProID='"+db.q("id")+"'"; db.dp.CommandText = strsql; DataTable dt = db.dp.DataTableSQL(); if(dt.Rows.Count>0) { this.Repeater1.DataSource = dt; this.Repeater1.DataBind(); } } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Repeater1.ItemDataBound += new System.Web.UI.WebControls.RepeaterItemEventHandler(this.Repeater1_ItemDataBound); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void Repeater1_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e) { Repeater rep = (Repeater)e.Item.FindControl("rep"); DataRowView rowv = (DataRowView)e.Item.DataItem; //提取分类ID string Fid = rowv["FVoteId"].ToString(); string strsql = "select * from cms_VoteItem where FVoteId='"+Fid+"'"; //Response.Write("<script>alert('"+strsql+"');</script>"); db.dp.CommandText = strsql; DataTable dt = db.dp.DataTableSQL(); rep.DataSource = dt; rep.DataBind(); } public string IsView(string cid,string num) { string strsql = "select sum(FItemNum) from cms_VoteItem where FVoteId='"+cid+"'"; db.dp.CommandText = strsql; DataTable dt = db.dp.DataTableSQL(); double Sums = Convert.ToInt32(dt.Rows[0][0].ToString()); if(num=="0") return "0%"; else return (Convert.ToDouble(num)/Sums).ToString("P"); } public string IsViews(string cid,string num) { string strsql = "select sum(FItemNum) from cms_VoteItem where FVoteId='"+cid+"'"; db.dp.CommandText = strsql; DataTable dt = db.dp.DataTableSQL(); double Sums = Convert.ToInt32(dt.Rows[0][0].ToString()); if(num=="0") return "0%"; else return (Convert.ToDouble(num)/Sums*300).ToString(); }
protected System.Web.UI.WebControls.Repeater Repeater1; public Seaskyer.Modules.Utils.DBClass db = new Seaskyer.Modules.Utils.DBClass(); public string Title; //public string cid; private void Page_Load(object sender, System.EventArgs e) { if(!Page.IsPostBack) { string cid = ""; if(db.q("id")!="") { cid=db.q("id"); } Title = db.getSingleValue("cms_VotePro","FProName","FID",cid); BindRep(); } } /// <summary> /// 绑定Repeater控件,显示调查中的大类 /// </summary> public void BindRep() { string strsql = "select * from cms_vote where FProID='"+db.q("id")+"'"; db.dp.CommandText = strsql; DataTable dt = db.dp.DataTableSQL(); if(dt.Rows.Count>0) { this.Repeater1.DataSource = dt; this.Repeater1.DataBind(); } } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Repeater1.ItemDataBound += new System.Web.UI.WebControls.RepeaterItemEventHandler(this.Repeater1_ItemDataBound); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void Repeater1_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e) { Repeater rep = (Repeater)e.Item.FindControl("rep"); DataRowView rowv = (DataRowView)e.Item.DataItem; //提取分类ID string Fid = rowv["FVoteId"].ToString(); string strsql = "select * from cms_VoteItem where FVoteId='"+Fid+"'"; //Response.Write("<script>alert('"+strsql+"');</script>"); db.dp.CommandText = strsql; DataTable dt = db.dp.DataTableSQL(); rep.DataSource = dt; rep.DataBind(); } public string IsView(string cid,string num) { string strsql = "select sum(FItemNum) from cms_VoteItem where FVoteId='"+cid+"'"; db.dp.CommandText = strsql; DataTable dt = db.dp.DataTableSQL(); double Sums = Convert.ToInt32(dt.Rows[0][0].ToString()); if(num=="0") return "0%"; else return (Convert.ToDouble(num)/Sums).ToString("P"); } public string IsViews(string cid,string num) { string strsql = "select sum(FItemNum) from cms_VoteItem where FVoteId='"+cid+"'"; db.dp.CommandText = strsql; DataTable dt = db.dp.DataTableSQL(); double Sums = Convert.ToInt32(dt.Rows[0][0].ToString()); if(num=="0") return "0%"; else return (Convert.ToDouble(num)/Sums*300).ToString(); }
其中的表cms_VotePro是记录复式的主标题 cms_vote是记录投票项 cms_VoteItem是最后的小项了
相关文章推荐
- asp.net中repeater嵌套CheckBoxList,RadioButtonList来完成投票
- asp.net中repeater嵌套CheckBoxList,RadioButtonList来完成投票
- asp.net中repeater嵌套CheckBoxList,RadioButtonList来完成投票
- asp.net中repeater嵌套CheckBoxList,RadioButtonList来完成投票
- asp.net中repeater嵌套CheckBoxList,RadioButtonList来完成投票
- asp.net中repeater嵌套CheckBoxList,RadioButtonList来完成投票
- [我的ASP.net学习历程]CheckBoxList和RadioButtonList的数据梆定
- ASP.NET服务器端控件RadioButtonList,DropDownList,CheckBoxList的取值、赋值用法
- ASP.NET的checkboxlist,RadioButtonList,FileUpload,image控件的综合使用
- ASP.Net: 为 CheckBoxList 和 RadioButtonList 中的各 ListItem 项目编写客户端脚本
- ASP.NET MVC 3.0 知识记要(2)【RadioButtonList、CheckBoxList】
- ASP.NET服务器端控件RadioButtonList,DropDownList,CheckBoxList的取值、赋值用法
- 在ASP.NET MVC中使用“RadioButtonList”和“CheckBoxList”
- ASP.NET服务器端控件RadioButtonList,DropDownList,CheckBoxList的取值、赋值用法
- Asp.Net Repeater的两层嵌套以及遍历取值的简单实现(checkbox)
- ASP.NET服务器端控件RadioButtonList,DropDownList,CheckBoxList的取值、赋值用法
- ASP.NET中 RadioButtonList(单选按钮组),CheckBoxList(复选框组),DropDownList(下拉框),ListBox(列表框),BulletedList(无序列表)的使用前台绑定
- ASP.NET MVC 中使用“RadioButtonList”和“CheckBoxList”
- 在ASP.NET MVC中使用“RadioButtonList”和“CheckBoxList”
- ASP.NET 嵌套Repeater[转收藏]