public class Research_Z : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button btSave;
protected System.Web.UI.WebControls.Button btClose;
protected System.Web.UI.WebControls.PlaceHolder PlaceHolder2;
protected System.Web.UI.WebControls.Label lbSubject;
protected static Table tb;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string str ="select a.subject,b.Project,b.showorder,b.butttype,b.ResprojectId,c.content,c.Ballot,(select count(distinct showorder)";
str = str+" from infresproject where researchid=a.researchid) as shownumber";
str = str+" from InfResearch as a";
str = str+" left outer join";
str = str+" (select ResprojectId,ResearchId,ShowOrder,ButtType,Project from InfResProject ) as b on b.ResearchId=a.ResearchId";
str = str+" left outer join";
str = str+" (select ResProjectId,content,Ballot from InfResOption) as c on c.ResprojectId=b.ResprojectId";
//str = str+" where a.state='1' and a.subject='7月份服务调查' and isnull(b.project,'0')<>'0'";
str = str+" where a.state='2' and isnull(b.project,'0')<>'0'";
str = str+" group by a.subject,b.Project,b.showorder,b.butttype,b.ResprojectId,c.content,c.Ballot,a.researchid";
str = str+" order by b.showorder";
// 在此处放置用户代码以初始化页面
tb = new Table();//创建一个表格
tb.BorderWidth=Unit.Parse("1");
tb.Width = Unit.Parse("100%");
//首先计算需要多少生成多少行
LocalDBDealer iv = new LocalDBDealer();
DataTable dtb = iv.ExeSelectDT(str,true);
lbSubject.Text = dtb.Rows[0][0].ToString();
int pNo = System.Convert.ToInt32(dtb.Rows[0][7].ToString());//获取需要生成多少行
int p =0; //记录了获取值的指针
for (int j=1;j<=pNo;j++)
{
//获取该行的所有选项
DataView view=dtb.DefaultView;
view.RowFilter="showorder = '"+System.Convert.ToString(j)+"'";
string btnType = view.Table.Rows[p][3].ToString();//存放按钮类型
//计算共有多少个选项
TableRow tr = new TableRow();//创建一行
int pi =System.Convert.ToInt32(view.Count.ToString());
//创建一列,放项目
TableCell cellProject = new TableCell();//创建单元格,也就是第一列
cellProject.Text=view.Table.Rows[p][1].ToString();//设置单元格内的文本
tr.Cells.Add(cellProject);//添加到行中
for (int i =0;i<pi;i++)
{
if (btnType=="单选")
{
//生成按钮
TableCell cel1 = new TableCell();
RadioButton rad = new RadioButton();
rad.Text = view.Table.Rows[i+p][5].ToString();
rad.GroupName = System.Convert.ToString(j);//设置GROUPNAME的值,保证单选
cel1.Controls.Add(rad);
tr.Cells.Add(cel1);
}
else//多选按钮
{
TableCell cel1 = new TableCell();
tr.Cells.Add(cel1);
CheckBox chb = new CheckBox();
chb.Text = view.Table.Rows[i+p][5].ToString();
cel1.Controls.Add(chb);
}
// TableCell cell1 = new TableCell();//创建单元格,也就是第一列
// cell1.Text=view.Table.Rows[i+s][5].ToString();//设置单元格内的文本
// tr.Cells.Add(cell1);//添加到行中
//
}
p = p+pi; //将指针进行累加
tb.Rows.Add(tr);//添加到表格中
}
this.PlaceHolder2.Controls.Add(tb);
/
// textbox.Text="输入结束后请按TAB键";//程序运行时文本框内的提示文本
//
// textbox.ID="t";//给文本框起个名字
//
// textbox.Width=200;//设置宽度
//
// textbox.Height=20;//设置高度
//
// textbox.AutoPostBack=true;//响应事件的条件
//
// textbox.TextChanged+=new EventHandler(textbox_TextChanged);//添加事件,在.net中,按TAB自动生成
//
// textbox.Attributes.Add("onmouseover","t.value=''");//给文本框添加一个javascript事件,当鼠标从文本框中移过时自动清除文本框内的提示内容
// this.PlaceHolder1.Controls.Add(textbox);//添加
// this.PlaceHolder1.Controls.Add(label);//此处将标签添加到PlaceHolder中
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.btSave.Click += new System.EventHandler(this.btSave_Click);
this.btClose.Click += new System.EventHandler(this.btClose_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void btSave_Click(object sender, System.EventArgs e)
{
//保存事件
//获取行数
int rows = System.Convert.ToInt32(tb.Rows.Count.ToString());
for (int i=0;i<rows;i++)
{
//循环读取数据
//得到第一列的值
string project = tb.Rows[i].Cells[0].Text.ToString();
//获取列数
int coms = System.Convert.ToInt32(tb.Rows[i].Cells.Count.ToString());
for (int j=1;j<coms;j++)
{
CheckBox chk = (CheckBox)tb.Rows[i].Cells[j].Controls[0];
if (chk.Checked)
{
//获取被选中的按钮的值
string content = chk.Text.ToString();
//根据检查到的值提交到数据库里
string str;
str = "update infresoption set ballot=isnull(ballot,0)+1 ";
str = str+"where content='"+content+"' and resprojectid=(select resprojectid from infresproject where project='"+project+"'";
str = str+" and researchid=(select researchid from infresearch where subject='"+lbSubject.Text.ToString()+"')) ";
LocalDBDealer iv = new LocalDBDealer();
bool success = iv.ExeCommandBool(str);
if(success)
{
//initialize the textbox and Radiobutton
//ClearEntryField();
// Response.Write("<script>alert('您的留言提交成功,稍后我们会回复,谢谢你的支持。');</script>");
// this.Response.Write("<script>window.close();</script>");
}
else
{
Response.Write("<script>alert('保存时出错');</script>");
return;
}
}
//string kk = tb.Rows[i].Cells[j].Controls[0].ToString();//可以获取类型
}
}
//保存投票人数
string strSql;
strSql = "update infresearch set ballot=isnull(ballot,0)+1 where subject='"+lbSubject.Text.ToString()+"' and state='2'";
LocalDBDealer siv = new LocalDBDealer();
bool ssuccess = siv.ExeCommandBool(strSql);
if(ssuccess)
{
//保存完成
Response.Write("<script>alert('提交完成');</script>");
}
}
private void btClose_Click(object sender, System.EventArgs e)
{
this.Response.Write("<script>window.close();</script>");
}
}