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

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. 19年最新 Python0基础学习书籍推荐(内涵PDF地址以及书籍源码)

    去年看过一篇文章,是关于18年的最适合0基础学习的书籍,今年,最新的书籍也已经统计出来.书籍的PDF太过于难找,所以很多PDF都找不到. 仅仅只能找到英文版PDF 本文章统计了18.19并做过对比,在 ...

  2. C++:标准模板库map

    一:介绍 map是STL的关联式容器,以key-value的形式存储,以红黑树(平衡二叉查找树)作为底层数据结构,对数据有自动排序的功能. 命名空间为std,所属头文件<map> 注意:不 ...

  3. Spring Boot系列教程十三:Spring boot集成Sentinel Redis

    前言 上一篇文章介绍了spring boot集成单点的redis,然而实际生产环境使用单点的redis风险很高,一旦宕机整个服务将无法使用,这篇文章介绍如何使用基于sentinel的redis高可用方 ...

  4. GB2312、GBK、GB18030 这几种字符集的主要区别

    1 GB2312-80 GB 2312 或 GB 2312-80 是中国国家标准简体中文字符集,全称<信息交换用汉字编码字符集·基本集>,又称 GB 0,由中国国家标准总局发布,1981 ...

  5. Python--jsonpath

    JsonPath是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种原因实现保本:JavaScript/Python/PHP和Java. 使用方法如: import jsonpathre ...

  6. 删除列表的三个方式(python)

    del是个语句而不是方法 del member[1]:通过下标进行删除 del member:也可删除整个列表 remove():根据列表元素本身来删除,而不是通过下标 member.remove(' ...

  7. hdu 1698 线段数的区间更新 以及延迟更新

    先说说区间更新和单点更新的区别 主要的区别是搜索的过程 前者需要确定一个区间 后者就是一个点就好了 贴上两者代码 void updata(int i)//单点更新 { int l=stu[i].l; ...

  8. (七)装配Bean(1)

    针对给接口提供哪一个具体的实现,也就是装配哪一种具体的实现bean,在Spring中提供了多种方式,主要包括3种: 一.隐式的bean发现机制和自动装配(自动化装配bean) 二.在Java类中进行显 ...

  9. (三)mybatis之通过接口加载映射配置文件

    1.1  需求 通过(二)在全局配置文件 mybatis-configuration.xml 通过 <mappers> 标签来加载映射文件,那么如果我们项目足够大,有很多映射文件呢,难道我 ...

  10. IIs发布的项目无法打开问题

    1/查看一下ISAPI筛选器,是否存在2.0,4.0,若缺少东西,就从新安装一下iis,存在某些程序没有被勾选,一般是asp.net3.5,asp.net4.0