高手进来,一个简单的ASP.NET程序扩展问题
描述:我已经做好了投票页面,并且运行良好.这个页面的功能是根据上个页面传递过来的ID号,从数据库的两个表中分别检索标题和选项,并显示出来,其中每个标题的选项数是不固定的,而且根据题目自动生成单选按钮或多选按钮,所有的上面这些功能都已经实现.现在我想修改一下页面,如果投票用户选中了一个"其它"的选项,页面就显示一个TEXTBOX控件(也就是可以把用户认为其他的内容保存起来,当然如果选项中没有"其它",或者用户没有选中它,这个控件,就不可用或者不显示).不知大家是否明白了我的意思,下面是我的.aspx<body>
<form id="form1" runat="server">
<div id="main">
<div id="title">大学生就业问题调查问卷(学生问卷)</div>
<div id="single">
<h1><asp:Label ID="lblTitle" runat="server" Text=""></asp:Label></h1>
<p>
<asp:RadioButtonList ID="rbl" runat="server">
</asp:RadioButtonList>
<asp:CheckBoxList ID="cbl" runat="server">
</asp:CheckBoxList>
</p>
<p>
<asp:Button ID="btnSubmit" runat="server" Text="提交" onclick="btnSubmit_Click" />
<asp:Button ID="btnView" runat="server" Text="查看" onclick="btnView_Click" />
</p>
<p><a href="Default1.aspx">查看其他投票</a></p>
</div>
</div>
</form>
</body>代码
和.cs代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
VotingData();
}
}
/// <summary>
/// 投票选项显示
/// </summary>
private void VotingData()
{
string ItemID = Request.QueryString["id"]; //投票问题编号,上一个页面传过来的
bool IsMult = false;
ItemID.Replace("'", ""); //简单处理,屏蔽单引号
//查询该问题是否存在voitStartTime
string strSql = "SELECT voitID,voitTitle,voitIsMult FROM VoteItem WHERE voitID=" + ItemID;
string strConn = System.Configuration.ConfigurationManager.ConnectionStrings["VoteConnectionString"].ConnectionString;
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
SqlCommand comm = new SqlCommand(strSql, conn);
SqlDataReader dr = comm.ExecuteReader();
if (dr.Read())
{
lblTitle.Text = dr.GetString(1); //dr["voitTitle"].ToString();
IsMult = dr.GetBoolean(2);
}
dr.Close();
//显示答案选项
string strSqlChoice = "SELECT vochID,vochTitle FROM VoteChoice WHERE voitID=" + ItemID;
SqlCommand chComm = new SqlCommand(strSqlChoice, conn);
SqlDataReader chDr = chComm.ExecuteReader(CommandBehavior.CloseConnection);
//多选,单选的不同显示
if (IsMult)
{
cbl.Visible = true;
cbl.DataSource = chDr;
cbl.DataTextField = "vochTitle";
cbl.DataValueField = "vochID";
cbl.DataBind();
rbl.Visible = false;
}
else
{
rbl.Visible = true;
rbl.DataSource = chDr;
rbl.DataTextField = "vochTitle";
rbl.DataValueField = "vochID";
rbl.DataBind();
cbl.Visible = false;
}
chDr.Close();
conn.Close();
}
/// <summary>
/// 保存投票点击
/// </summary>
/// <param name="chid"></param>
private void VoteSave(int chid)
{
string strSave = "UPDATE VoteChoice SET vochCount = vochCount + 1 WHERE vochID = " + chid;
string strConn = System.Configuration.ConfigurationManager.ConnectionStrings["VoteConnectionString"].ConnectionString;
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
SqlCommand commSave = new SqlCommand(strSave, conn);
commSave.ExecuteNonQuery();
conn.Close();
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (rbl.Visible == true)
{
//单选
int i = Convert.ToInt32(rbl.SelectedItem.Value);
VoteSave(i);
}
else
{
//多选
for (int i = 0; i < cbl.Items.Count; i++)
{
if (cbl.Items[i].Selected)
{
int j = Convert.ToInt32(cbl.Items[i].Value);
VoteSave(j);
}
}
}
Response.Write("<script language='javascript'>alert('投票成功,谢谢支持。');location.href='Default1.aspx';</script>");
}
protected void btnView_Click(object sender, EventArgs e)
{
string ItemID = Request.QueryString["id"]; //投票问题编号
Response.Redirect("detailQuestion.aspx?id=" + ItemID);
}
在线交流!!!