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

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. python运算符 - python基础入门(7)

    什么是运算符?听着高大上,实际小学生都能把它玩的贼溜.比如:3 + 2 – 5 * 0 = 0 一.算术运算符 简称加减乘除,直接上代码:   a = 10 b = 20 c = 30 # 其实上面三 ...

  2. OpenCV Python 4.0安装

    1.安装OpenCV-Python 如果你是第一次使用OpenCV Python开发包,想要安装OpenCV Python4.0只要执行如下命令行即可: pip install opencv-pyth ...

  3. php-fpm,cgi,fast-cgi,nginx,php.ini,php-fpm.conf,nginx.conf

    php-fpm.conf 是PHP-FPM特有的配置文件. php.ini 是所以php模式中必须的配置文件. 两者的区别是,php-fpm.conf 是PHP-FPM进程管理器的配置文件,php.i ...

  4. order pick-up and delivery problem

    问题一: pi表示取第i个单,di表示送第i个单.di不能在pi的前面.给一个取单送单的顺序,问是否是valid顺序. public boolean isValidOrderList(List< ...

  5. MapReduce的输入文件是两个

    [学习笔记] 1.对于MapReduce程序,如何输入文件是两个文件? 这一小节,我们将继续第一章大数据入门的HelloWorld例子做进一步的研究.这里,我们研究如何输入文件是两个文件.packag ...

  6. WUSTOJ 1237: 将八进制的字符串转换成等价的十进制字符串(Java)

    1237: 将八进制的字符串转换成等价的十进制字符串 题目   输入八进制,输出十进制.更多内容点击标题. 分析   输入的八进制数有20位.已经超出了Integer.MAX_VALUE的范围,因此此 ...

  7. Destination高级特性

    一.组合队列 Composite Destinations 组合队列允许用一个虚拟的destination代表多个destinations.这样就可以通过composite destinations在 ...

  8. linux中部署jenkins(war包)及jenkins忘记登录账号密码

    未登录状态 登录状态 一:部署jenkins(war包) 1.直接下载war包jenkins.war,下载地址https://jenkins.io/download 2.将下载的war包放到服务器上t ...

  9. 涛哥:Qt安卓-5.12环境搭建

    简介 Qt for android 环境搭建,以Windows平台 Qt5.12为基准. 因为有不少人问相关问题,所以写篇文章汇总一下. 安装Qt 需要先安装Android版的Qt. 一般在Qt的安装 ...

  10. 关于财务YT知识点

    1 YT 将今年剩余的未花完的money做YT,生成一个YT号,用在下一年使用的机制. 2 生成YT的方式 2.1 PR生成YT 2.2 PO生成YT 2.3 TR生成YT 2.4 预算直接生成YT ...