JQueryEasyUI框架下的combobox的取值和绑定的方法
作者:Danna_Danna
最近做的项目涉及到JQueryEasyUI框架的使用,EasyUI是什么?网上解释说它是来自W3C标准WEB前端专家DHTML精英俱乐部的简单易用功能强大的轻量级WEB前端JavaScript框架!从这句话的理解来说,我认为它是一种JavaScript框架。
对于最近的使用中,给我的感觉就是,借用官网JqueryEasyUI上的一句话,EasyUI是基于jQuery用户界面插件的集合,我把它理解成一种插件,不知道有没有问题。而使用easyui,不需要写很多的javascript代码,只需在定义的用户界面写一些HTML标记,完成HTML5网页的框架,所以说在这个框架里面是没有服务器控件。没有ruant=“server”。其功能强大,使用方便。
下面就说说EasyUI框架下的combobox,在使用的时候获取值和绑定值得方法。
在前台,我们通常这么写:
<select class="easyui-combobox" id ="cmbName" name="name" ></select>
在牛腩新闻发布系统中和北大青鸟中都讲到了控件中数据绑定的问题,那在这里能不能也采用那种方法?牛腩新闻发布系统和北大青鸟中讲的控件都是服务器控件,但这里不是服务器控件,我们又该怎么绑定值和获取值?
绑定值:(方法不止这一个)
可以将这个控件转为服务器控件。加入runat=“server”,将其装为服务器控件。剩下就同牛腩新闻发布系统和北大青鸟里面讲的服务器控件一样,绑定值。
<select class="easyui-combobox" id ="cmbName" runat="server" datatextfield ="AdminName" datavaluefield ="AdminID" name="name" style="width: 150px;" ></select>
后台:
protected void Page_Load(object sender, EventArgs e) { noticeInfoBLL Bnotice = new noticeInfoBLL(); DataSet ds = new DataSet(); ds = Bnotice.GetAllList(); DataTable dt = ds.Tables[0]; cmbName.DataSource =dt; cmbName.DataTextField = "AdminName"; cmbName.DataValueField = "AdminID"; cmbName.DataBind(); }
绑定值之后,怎么获取里面的值呢?
获取值:
var adminname=$("#state").combobox("getText"); //这是获取combobox中选择的内容,例如上面绑定的“AdminName” var adminid=$("#state").combobox("getValue"); //这是获取combobox选择的值,例如上面绑定的“AdminID”
comboboxc绑定值出现重复:
在combobox绑定值的时候,我还遇到这么一个问题,在返回的数据中,有很多条,因为我是往combobox中绑定的名字,名字不能重复,但是我从数据库中返回的数据却是这样的:
那么怎么解决这个问题呢?
有两个解决方法:
第一:修改查询语句,使用SQL SELECT DISTINCT 语句
第二:在后台绑定数据时也可以像这样绑定:
protected void Page_Load(object sender, EventArgs e) { //if (!Page.IsPostBack) //if (Session["userid"] != null && Session["postid"] != null) noticeInfoBLL Bnotice = new noticeInfoBLL(); DataSet ds = new DataSet(); ds = Bnotice.GetAllList(); DataTable dt = ds.Tables[0]; //去重复的AdminName和AdminID DataView dv=dt.DefaultView ; cmbName.DataSource = dv.ToTable(true, "AdminName","AdminId"); cmbName.DataTextField = "AdminName"; cmbName.DataValueField = "AdminID"; cmbName.DataBind(); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。