这是一个简单的在线测试页面,现在都写在一起了,现在要分离成ASPX和CS两个文件,如何分呢?
我现在遇到两个问题:一是提交按钮的响应,有没有可能一边在CS里响应,一边还可以用From响应?
还有一个就是动态生成的单选按钮的值传递。这些按钮被选了后,会有value,如果用CS,这些值怎么传到Score.aspx中。<Script runat="server">
string Lesson;
string No;
string Name;
OleDbDataReader dr;
void Page_Load(Object Src, EventArgs E) {
Lesson = Request["Lesson"];
No = Request["No"];
Name = Request["Name"];
string SQL = "Select * From " + Lesson;
OleDbConnection Conn;
Conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;"+
"Data Source="+Server.MapPath("test.mdb"));
Conn.Open();
OleDbCommand Comm = new OleDbCommand(SQL,Conn);
dr = Comm.ExecuteReader();
}
</Script>
<HTML>
<BODY BGCOLOR=BEIGE>
<CENTER>
<H1> <FONT COLOR=#6699DD>在线考试系统 </FONT> </H1>
</CENTER>
<H2>考试科目 -- <%=Lesson%> <HR> </H2>
<FORM Action="Score.aspx" Method="GET">
<INPUT Type="Hidden" Name="Lesson" Value= <%=Lesson%>>
<INPUT Type="Hidden" Name="No" Value= <%=No%>>
<INPUT Type="Hidden" Name="Name" Value= <%=Name%>>
<%
string TestType = "";
while (dr.Read()){
Response.Write(" <B>" + dr["题号"].ToString() + "."
+ Server.HtmlEncode(dr["题目"].ToString())
+ dr["类型"].ToString() + ":" + dr["分数"].ToString() + "分) </B>");
Response.Write(" <div>");
for (int i=1; i <5; i++) {
if (dr["类型"].ToString() == "单选") {
TestType = "Radio";
}
else {
TestType = "CheckBox";
}
Response.Write(" <INPUT Type=" + TestType
+ " Name=No" + dr["题号"].ToString()
+ " Value=" + i +">"
+ Server.HtmlEncode(dr["选项" + i].ToString()) + " <BR>");
}
Response.Write(" </div>");
}
%>
<INPUT Type=Submit Value=" 交 卷 ">
</FORM> <HR> </BODY>
</HTML>
我现在遇到两个问题:一是提交按钮的响应,有没有可能一边在CS里响应,一边还可以用From响应?
还有一个就是动态生成的单选按钮的值传递。这些按钮被选了后,会有value,如果用CS,这些值怎么传到Score.aspx中。<Script runat="server">
string Lesson;
string No;
string Name;
OleDbDataReader dr;
void Page_Load(Object Src, EventArgs E) {
Lesson = Request["Lesson"];
No = Request["No"];
Name = Request["Name"];
string SQL = "Select * From " + Lesson;
OleDbConnection Conn;
Conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;"+
"Data Source="+Server.MapPath("test.mdb"));
Conn.Open();
OleDbCommand Comm = new OleDbCommand(SQL,Conn);
dr = Comm.ExecuteReader();
}
</Script>
<HTML>
<BODY BGCOLOR=BEIGE>
<CENTER>
<H1> <FONT COLOR=#6699DD>在线考试系统 </FONT> </H1>
</CENTER>
<H2>考试科目 -- <%=Lesson%> <HR> </H2>
<FORM Action="Score.aspx" Method="GET">
<INPUT Type="Hidden" Name="Lesson" Value= <%=Lesson%>>
<INPUT Type="Hidden" Name="No" Value= <%=No%>>
<INPUT Type="Hidden" Name="Name" Value= <%=Name%>>
<%
string TestType = "";
while (dr.Read()){
Response.Write(" <B>" + dr["题号"].ToString() + "."
+ Server.HtmlEncode(dr["题目"].ToString())
+ dr["类型"].ToString() + ":" + dr["分数"].ToString() + "分) </B>");
Response.Write(" <div>");
for (int i=1; i <5; i++) {
if (dr["类型"].ToString() == "单选") {
TestType = "Radio";
}
else {
TestType = "CheckBox";
}
Response.Write(" <INPUT Type=" + TestType
+ " Name=No" + dr["题号"].ToString()
+ " Value=" + i +">"
+ Server.HtmlEncode(dr["选项" + i].ToString()) + " <BR>");
}
Response.Write(" </div>");
}
%>
<INPUT Type=Submit Value=" 交 卷 ">
</FORM> <HR> </BODY>
</HTML>
解决方案 »
- 请教sql语句参数,为什么where id in(@ids)不能使用参数?
- 100分提问!qq空间的模态对话框和背景变灰怎样实现的?
- .NET打印如何设置为A4纸正反两面打印
- 求帮助。大侠帮忙解决下。
- 自动完成的滚动条问题
- 请问大家在vs2005 中用的 treeview控件是它自带的那个吗.
- 求一个简单的BBS源码
- 各位老大,在线等啊,在win2003下的做好的,拷到服务器上win2000就不行啊,按纽点击没动静,是怎么回事啊
- ASP.NET调用本地可执行程序为什么不成功?
- 各高手赐招:如何用javascirpt实现在Table控件中,第一列乘以第二列得到第三列的值
- 怎样循环GridView 找到每行的主键,并找到每一行的控件
- .net2.0CSS规范问题
可以在cs里处理完响应后,再调用前台的JS来处理还有一个就是动态生成的单选按钮的值传递。这些按钮被选了后,会有value,如果用CS,这些值怎么传到Score.aspx中。
用Js可以取到
string Lesson;
string No;
string Name;
OleDbDataReader dr;
void Page_Load(Object Src, EventArgs E) {
Lesson = Request["Lesson"];
No = Request["No"];
Name = Request["Name"];
string SQL = "Select * From " + Lesson;
OleDbConnection Conn;
Conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;"+
"Data Source="+Server.MapPath("test.mdb"));
Conn.Open();
OleDbCommand Comm = new OleDbCommand(SQL,Conn);
dr = Comm.ExecuteReader();
} string TestType = "";
while (dr.Read()){
Response.Write(" <B>" + dr["题号"].ToString() + "."
+ Server.HtmlEncode(dr["题目"].ToString())
+ dr["类型"].ToString() + ":" + dr["分数"].ToString() + "分) </B>");
Response.Write(" <div>");
for (int i=1; i <5; i++) {
if (dr["类型"].ToString() == "单选") {
TestType = "Radio";
}
else {
TestType = "CheckBox";
}
Response.Write(" <INPUT Type=" + TestType
+ " Name=No" + dr["题号"].ToString()
+ " Value=" + i +">"
+ Server.HtmlEncode(dr["选项" + i].ToString()) + " <BR>");
}
Response.Write(" </div>");
} 写在Page_Load里面
<BODY BGCOLOR=BEIGE>
<CENTER>
<H1> <FONT COLOR=#6699DD>在线考试系统 </FONT> </H1>
</CENTER>
<H2>考试科目 -- <%=Lesson%> <HR> </H2>
<FORM Action="Score.aspx" Method="GET">
<INPUT Type="Hidden" Name="Lesson" Value= <%=Lesson%>>
<INPUT Type="Hidden" Name="No" Value= <%=No%>>
<INPUT Type="Hidden" Name="Name" Value= <%=Name%>>
<%
string TestType = "";
while (dr.Read()){
Response.Write(" <B>" + dr["题号"].ToString() + "."
+ Server.HtmlEncode(dr["题目"].ToString())
+ dr["类型"].ToString() + ":" + dr["分数"].ToString() + "分) </B>");
Response.Write(" <div>");
for (int i=1; i <5; i++) {
if (dr["类型"].ToString() == "单选") {
TestType = "Radio";
}
else {
TestType = "CheckBox";
}
Response.Write(" <INPUT Type=" + TestType
+ " Name=No" + dr["题号"].ToString()
+ " Value=" + i +">"
+ Server.HtmlEncode(dr["选项" + i].ToString()) + " <BR>");
}
Response.Write(" </div>");
}
%>
<INPUT Type=Submit Value=" 交 卷 ">
</FORM> <HR> </BODY>
</HTML>
Default.aspx.cs文件:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class UserControl_recommendation :DataControlBase .DataControl
{
protected void Page_Load(object sender, EventArgs e)
{
string Lesson;
string No;
string Name;
OleDbDataReader dr;
void Page_Load(Object Src, EventArgs E) {
Lesson = Request["Lesson"];
No = Request["No"];
Name = Request["Name"];
string SQL = "Select * From " + Lesson;
OleDbConnection Conn;
Conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;"+
"Data Source="+Server.MapPath("test.mdb"));
Conn.Open();
OleDbCommand Comm = new OleDbCommand(SQL,Conn);
dr = Comm.ExecuteReader();
}
}
你可以说下你的需求是怎么样的,你其实可以把东西都放到From里面或者是CS里面处理还有一个就是动态生成的单选按钮的值传递。这些按钮被选了后,会有value,如果用CS,这些值怎么传到Score.aspx中
你注意看这段代码:
Response.Write(" <INPUT Type=" + TestType
+ " Name=No" + dr["题号"].ToString()
+ " Value=" + i +">"
+ Server.HtmlEncode(dr["选项" + i].ToString()) + " <BR>");
按钮生成后会有这样的ID:Name=No1,Name=No2 ...如果你是用Submit提交的话,可以在From里面获取值。
你也可以用JS来获取这些Radio或者CheckBox的值
<INPUT Type="Hidden" Name="Lesson" Value=<%=Lesson%>>
<INPUT Type="Hidden" Name="No" Value=<%=No%>>
<INPUT Type="Hidden" Name="Name" Value=<%=Name%>>这部分会出错。
3楼 adoxcy :不能把判断部分放在CS中吗?
你也可以用JS来获取这些Radio或者CheckBox的值
————————————————————————————
谢谢!flamelp :是的,这正是第一个问题,我分离成CS后,好象HTML中的from已没有任何反应了,单击“交卷”按钮后它不会跳到Action指定的页面上去,就是头痛这个问题,原来由<FROM>传值的功能,现在没有了,怎么把值传过去?
</FORM>但是我想提交的同时,想一些参数传过去,原文是这样的:
<INPUT Type="Hidden" Name="Lesson" Value=<%=Lesson%>>
<INPUT Type="Hidden" Name="No" Value=<%=No%>>
<INPUT Type="Hidden" Name="Name" Value=<%=Name%>>
现在加了CS文件了,Value=<%=Lesson%>>这部分会出错,这些值如何传过去?
Response.Write(" <INPUT Type=" + TestType
+ " Name=No" + dr["题号"].ToString()
+ " Value=" + i +">"
CS中生成的控件,不会出现在<from></from>中
所以没有办法传值,应该怎么弄到<from></from>中?生活真难啊,这个问题从早上来现在,有十个小时了,眼看夜慕降临,明天又到了,三天两头被这么逼,有时候都不想活了。
你重新用VS2003/2005建一个页面 把在<Script runat="server">
</script>中转化到.CS文件中