需求描述:专业分流系统中,学生在选择志愿时,我想实现在页面按照点击相应专业的顺序来设置选专业的志愿,如首先点击“工商”,则工商专业为第一志愿,接着点击“营销”,则营销专业为第二志愿,以此类推。从而达到所选志愿不会重复的效果。以下是我的实现方法。

html控件用js赋值之后可以在页面中显示,但后台无法获取改变之后的值。因此我用了一个比较笨的办法,就是加一个隐藏的服务器控件,后台用Request.Form方法取这个隐藏控件的值。大佬们有更好的方法欢迎赐教。

JS

   <script type="text/javascript">
$(".chooseitem").click(function () {
var thisText = $(this).text();
var aLength = $(".selected").length;
var thisDataId = $(this).attr("data-id"); if ($(this).hasClass("whitesmoke")) {
return false;
}
$(this).addClass("whitesmoke");
$(".tdlable").eq(aLength).html("<label class='ddl selected' data-id='" + thisDataId + "' id='Label" + thisDataId + "'>" + thisText + "</label>");
$(".hiddenddl").eq(aLength).val(thisDataId);
});;
function cancel() {
$(".chooseitem").removeClass("whitesmoke");
$(".ddl").empty();
}
</script>

前台代码

      <div class="choose">
<div class="chooseitem" data-id="">人力</div>
<div class="chooseitem" data-id="">信管</div>
<div class="chooseitem" data-id="">工商</div>
<div class="chooseitem" data-id="">营销</div>
<div class="chooseitem" data-id="">公管</div>
<div class="chooseitem" data-id="">财务ACCA</div>
<div class="chooseitem" data-id="">会计</div>
</div>
<div id="wish">
<table>
<tr>
<td class="td1">第一志愿:</td>
<td class="tdlable"></td>
</tr>
<tr>
<td class="td1">第二志愿:</td>
<td class="tdlable"></td>
</tr>
<tr>
<td class="td1">第三志愿:</td>
<td class="tdlable"></td>
</tr>
<tr>
<td class="td1">第四志愿:</td>
<td class="tdlable"></td>
</tr>
<tr>
<td class="td1">第五志愿:</td>
<td class="tdlable"></td>
</tr>
<tr>
<td class="td1">第六志愿:</td>
<td class="tdlable"></td>
</tr>
<tr>
<td class="td1">第七志愿:</td>
<td class="tdlable"></td>
</tr>
<tr style="height:50px">
<td colspan="" style="text-align:center;">
<asp:Button ID="btnSave" runat="server" Text="保存" OnClick="btnSaveClick"/>
<asp:Button ID="btnCancel" runat="server" Text="重新选择" OnClientClick="cancel();"/>
</td>
</tr>
</table>
</div>
</div>
</div>
<table class="hiddenTb"> //这里设置display=none <tr>
<td class="td1">第一志愿:</td>
<td><asp:DropDownList ID="ddlOne" runat="server" CssClass="hiddenddl" ></asp:DropDownList></td>
</tr>
<tr>
<td class="td1">第二志愿:</td>
<td><asp:DropDownList ID="ddlTwo" runat="server" CssClass="hiddenddl" ></asp:DropDownList></td>
</tr>
<tr>
<td class="td1">第三志愿:</td>
<td><asp:DropDownList ID="ddlThree" runat="server" CssClass="hiddenddl" ></asp:DropDownList></td>
</tr>
<tr>
<td class="td1">第四志愿:</td>
<td><asp:DropDownList ID="ddlFour" runat="server" CssClass="hiddenddl" ></asp:DropDownList></td>
</tr>
<tr>
<td class="td1">第五志愿:</td>
<td><asp:DropDownList ID="ddlFive" runat="server" CssClass="hiddenddl" ></asp:DropDownList></td>
</tr>
<tr>
<td class="td1">第六志愿:</td>
<td><asp:DropDownList ID="ddlSix" runat="server" CssClass="hiddenddl" ></asp:DropDownList></td>
</tr>
<tr>
<td class="td1">第七志愿:</td>
<td><asp:DropDownList ID="ddlSeven" runat="server" CssClass="hiddenddl" ></asp:DropDownList></td>
</tr>
</table>
</div>

后台代码

    protected void LoadData()
{
int StuID = Convert.ToInt32(Session["UserNo"].ToString());
DepartmentMIS.Model.StuInfo StuModel = StuBLL.GetModel(StuID); //给隐藏控件绑定值,方便后续取值
ddlOne.DataSource = DepBLL.GetList("isDeleted = 0");
ddlOne.DataTextField = "department";
ddlOne.DataValueField = "id";
ddlOne.DataBind();
if (StuModel.department1.ToString() != "")
{
ddlOne.SelectedValue = StuModel.department1.ToString();
}
else { ddlOne.SelectedValue = ""; } ddlTwo.DataSource = DepBLL.GetList("isDeleted = 0");
ddlTwo.DataTextField = "department";
ddlTwo.DataValueField = "id";
ddlTwo.DataBind();
if (StuModel.department2.ToString() != "")
{
ddlTwo.SelectedValue = StuModel.department2.ToString();
}
else { ddlTwo.SelectedValue = ""; } ddlThree.DataSource = DepBLL.GetList("isDeleted = 0");
ddlThree.DataTextField = "department";
ddlThree.DataValueField = "id";
ddlThree.DataBind();
if (StuModel.department3.ToString() != "")
{
ddlThree.SelectedValue = StuModel.department3.ToString();
}
else { ddlThree.SelectedValue = ""; } ddlFour.DataSource = DepBLL.GetList("isDeleted = 0");
ddlFour.DataTextField = "department";
ddlFour.DataValueField = "id";
ddlFour.DataBind();
if (StuModel.department4.ToString() != "")
{
ddlFour.SelectedValue = StuModel.department4.ToString();
}
else { ddlFour.SelectedValue = ""; } ddlFive.DataSource = DepBLL.GetList("isDeleted = 0");
ddlFive.DataTextField = "department";
ddlFive.DataValueField = "id";
ddlFive.DataBind();
if (StuModel.department5.ToString() != "")
{
ddlFive.SelectedValue = StuModel.department5.ToString();
}
else { ddlFive.SelectedValue = ""; } ddlSix.DataSource = DepBLL.GetList("isDeleted = 0");
ddlSix.DataTextField = "department";
ddlSix.DataValueField = "id";
ddlSix.DataBind();
if (StuModel.department6.ToString() != "")
{
ddlSix.SelectedValue = StuModel.department6.ToString();
}
else { ddlSix.SelectedValue = ""; } ddlSeven.DataSource = DepBLL.GetList("isDeleted = 0");
ddlSeven.DataTextField = "department";
ddlSeven.DataValueField = "id";
ddlSeven.DataBind();
if (StuModel.department7.ToString() != "")
{
ddlSeven.SelectedValue = StuModel.department7.ToString();
}
else { ddlSeven.SelectedValue = ""; }
} protected void btnSaveClick(object sender, EventArgs e)
{ int StuID = Convert.ToInt32(Session["UserNo"].ToString()); DepartmentMIS.Model.StuInfo StuModel = StuBLL.GetModel(StuID); StuModel.department1 = Convert.ToInt32(Request.Form[ddlOne.ClientID]);
StuModel.department2 = Convert.ToInt32(Request.Form[ddlTwo.ClientID]);
StuModel.department3 = Convert.ToInt32(Request.Form[ddlThree.ClientID]);
StuModel.department4 = Convert.ToInt32(Request.Form[ddlFour.ClientID]); ;
StuModel.department5 = Convert.ToInt32(Request.Form[ddlFive.ClientID]);
StuModel.department6 = Convert.ToInt32(Request.Form[ddlSix.ClientID]);
StuModel.department7 = Convert.ToInt32(Request.Form[ddlSeven.ClientID]); StuModel.updateTime = DateTime.Now; StuBLL.Update(StuModel);
Response.Redirect("stuWishChoices.aspx"); }

js重写页面之后后台如何获取重写后的控件值的更多相关文章

  1. js如何获取asp.net服务器端控件的值(label,textbox,dropdownlist,radiobuttonlist等)

    js如何获取asp.net服务器端控件的值(label,textbox,dropdownlist,radiobuttonlist等) 欢迎访问原稿:http://hi.baidu.com/2wixia ...

  2. Js获取file上传控件的文件路径总结

    总结一个获取file上传控件文件路径的方法 firefox由于保护机制只有文件名,不能获取完整路径. document.getElementById('file').onchange = functi ...

  3. javascript获取asp.net服务器端控件的值

    代码如下: <%@ Page Language="C#" CodeFile="A.aspx.cs" Inherits="OrderManage_ ...

  4. FineReport——获取控件值和单元格值

    设置单元格的值(填报预览): //contentPane.setCellValue(1,0,"abc");//参数面板给单元格赋实际值,即可填报 contentPane.curLG ...

  5. ASP.NET 后台不识别ASPX中的控件

    请问后台不识别ASPX中的控件,怎么解决 这个程序是在网上下载的 C# code <asp:DataGrid runat="server" ID="dgList1& ...

  6. js上传插件uploadify自动检测不到flash控件的问题

    [问题描述] 项目开发中,由于使用了js的一个上传插件uploadify,下载的是flash版本的,后来在谷歌浏览器上运行时经常报flash控件未安装,虽然下图是uploadify自动检测自动弹出来的 ...

  7. Winform 获取当前单击的控件名称 和 向窗体添加控件

    Winform如何获取当前单击的控件名称,比如有100个Button 和一个button_Click()的按钮事件 ,分别点击不同按钮后显示所点击的按钮名称?private void button_C ...

  8. MFC获取光标相对于控件所在行

    获取光标在控件上所在的行数 /*editControl为Edit Control的变量*/ CPoint point = editControl.GetCaretPos(); //获取光标相对于控件的 ...

  9. [Ext JS 4] 实战之 带week(星期)的日期选择控件(三)

    前言 在 [Ext JS 4] 实战之 带week(星期)的日期选择控件(二) 的最后,有提到一个解决方案. 不过这方案有一个条件  ==> “2. 每年的周数从(1-52), 如果超过52 周 ...

随机推荐

  1. selenium + python 环境配置 (三)之启动chrome

    安装启动chromedriver的方法和ie类似 2.启动chrome 即selenium调用ChromeDriver打开Chrome浏览器 ①下载并解压,你会得到一个chromedriver.exe ...

  2. super的实例及实现原理

    super实例 class A(): def go(self): print ("go A go!") def stop(self): print ("stop A st ...

  3. 《Tsinghua os mooc》第17~20讲 同步互斥、信号量、管程、死锁

    第十七讲 同步互斥 进程并发执行 好处1:共享资源.比如:多个用户使用同一台计算机. 好处2:加速.I/O操作和CPU计算可以重叠(并行). 好处3:模块化. 将大程序分解成小程序.以编译为例,gcc ...

  4. [转帖]1A2C多口充 紫米USB充电器65W桌面快充版评测

    1A2C多口充 紫米USB充电器65W桌面快充版评测 2019年10月04日 07:48 1786 次阅读 稿源:充电头网 1 条评论 https://www.cnbeta.com/articles/ ...

  5. PAT甲级 进制转换题_C++题解

    进制转换题 PAT (Advanced Level) Practice 进制转换题 目录 <算法笔记> 重点摘要 1015 Reversible Primes (20) 1019 Gene ...

  6. logstash grok nginx log

    #cat logstash.conf input { file { path => "/alidata/logs/nginx/appapi.dayutang.cn.access*.lo ...

  7. Python--context(上下文)(其实是环境)

    最近读Flask的文档,读到很多关于Context(上下文)的术语,如应用上下文,请求上下文等,查阅资料但没有得到理解?有没有比较好的解释? 每一段程序都有很多外部变量.只有像Add这种简单的函数才是 ...

  8. ubuntu svn 安装

    deepin@deepin:~$ sudo apt-get install rabbitvcs-rabbitvcs-cli rabbitvcs-core rabbitvcs-gedit rabbitv ...

  9. JVM命令行参数解析

    1. java命令行参数 先看java命令行的参数 solr@2f1fe8cc9f09:/opt/solr/server/solr-webapp/webapp$ java Usage: java [- ...

  10. 在论坛中出现的比较难的sql问题:5(row_number函数 分页、随机返回数据)

    原文:在论坛中出现的比较难的sql问题:5(row_number函数 分页.随机返回数据) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路. 1.在inner join后, ...