OBOUT控件简单介绍——ASP.NET控件

       最近在做基础系统的时候,我们在经过考虑,商量需求后,希望系统能实现功能的同时,还要给用户一种界面友好的感受。综合用户的使用习惯,希望在使用的下拉框中不仅能够显示从数据库中查询返回的信息,同时,还能够往里面输入值,根据这个输入的值在下拉框中自动匹配。现在就来说说我的思考过程和实现的过程吧。。。。。

       基础系统的界面使用的都是ASP的控件,为了界面的统一,也用ASP控件。

第一种方法:

       在ASP控件中,DropDwonList下拉控件只能从里面选择,不能往里面输入,所以直接用DropDwonList是不可行的。

第二种方法:

       将DropDownList和TextBox结合,由CSS来控制它们的显示隐藏

       优点:能够实现下拉框既能够输入也能够选择,

       缺点:输入值后自动匹配功能不能实现。

       分析原因:自动匹配可以用模糊查询来代替,但是用什么事件来触发这个模糊查询呢?如果说是用TextBox值改变的时候,那么你的界面就一点都不友好了,TextBox值改变,需要TextBox失去焦点,总不能我输入后再点一下界面的空白处吧?!更何况,即使这样可行,你查询到的值返回给DropDownList后,DropDownList下拉框不能展开,所以说也就不能直观的看到查询到的值,达不到想要的效果。

       所以这也就只能实现部分功能,这样还是不可行。

第三种方法:

        将DropDownList和TextBox结合,由CSS来控制它们的显示隐藏,然后用JS来实现匹配。

        分析:这个方法虽然说也能够实现前半部分,用JS,需要用某一个事件来调用JS写的函数,这又回到上面那个问题了,用一个什么函数来触发这个事件的问题。keydown?enter?不行的,对于ASP的控件来说,没有这些方法。

       所以说这个也被我否定了。

OBOUT—ASP.NET控件介绍

       于是我就用了百度,希望能找到一个第三方控件——ComboBox,然后 不小心就找到了这个 ASP.NET MVC
        点击http://www.obout.com/inc/download.aspx,进入下载页面,现在自己相应的VS的FrameWork的版本来进行下载:
           
        下载后是这样的一个安装包:
           
       进行安装,安装后VS的工具栏就会出现相应的控件,它里面疯长的
                 
        然后你就可以将它按照VS中平常的ASP的控件来使用了。在使用的时候不要忘了引用,不仅要引用你使用的哪个控件的DLL,这些dll,一般都是你在使用相应控件,那么它的dll就会自动在引用中,不用你手动引用。除此之外,还要引用obout_interface.dll,这个dll,存在你的安装目录下的bin文件中,我装在E盘中,所以引用路径是:
       
       我用了Combobox和grid两个控件,那么在引用下就有:
         
       引用之后,如何绑定数据呢?跟DropDownList一样的绑定数据方法。即:
        private string strConn1;
        private SqlDataReader sdr = null;
        private SqlConnection sqlConn = null;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack) {
                DataTable dtResult = new DataTable();
                dtResult = QueryAllSystem();
                ComboBox1.DataSource = dtResult;
                ComboBox1.DataTextField = "SystemName";
                ComboBox1.DataBind();
            }
         
        }
   
        public DataTable QueryAllSystem()
        {
            DataTable dtAll = new DataTable();
            //sql语句
           // string strSQL = "select top 10 from TB_Student order by StudentName collate chinese_prc_cs_as_ks_ws  ";
            string strSQL = "SELECT * FROM TB_SystemManager  order by SystemName collate chinese_prc_cs_as_ks_ws  ";
            //执行sql语句
            dtAll = ExecuteQuery(strSQL, CommandType.Text);
            return dtAll;
        }
        public DataTable ExecuteQuery(string cmdText, CommandType cmdType)
        {

            //定义并实例化DataTable表
            DataTable dtResult = new DataTable();
            //实例化SqlCommand
            SqlCommand sqlCmd = new SqlCommand(cmdText, GetConn());
            //传来的SqlCommand类型:存储过程、sql语句等
            sqlCmd.CommandType = cmdType;
            using (sdr = sqlCmd.ExecuteReader(CommandBehavior.CloseConnection))
            {
                dtResult.Load(sdr);
                //关闭记录集
                sdr.Close();
            }
            //判断数据表中是否有数据,数据表中有数据返回数据表,否则返回null
            if (dtResult.Rows.Count > 0)
            {
                //返回数据表
                return dtResult;
            }
            else
            {
                //没有数据,也返回数据表,只是数据表中无数据
                return dtResult;
            }

        }
        public SqlConnection GetConn()
        {   
           string strConn = ConfigurationManager.ConnectionStrings["strConnDB"].ConnectionString;
            strConn1 = strConn;
            //实例化数据库连接对象
            sqlConn = new SqlConnection(strConn);
            //如果数据库状态为关闭,打开数据库
                sqlConn.Open();
            return sqlConn;
        }
显示效果:
       第一:鼠标定位到Combobox的时候:
          
       第二:输入“查”时,自动匹配:
          
       昨天我再次看这个OBOUT系列ASP控件的时候,尝试的打开了它的Grid控件,发现他的数据绑定方式就同ASP中Repeater控件一样,不仅如此,它的Grid控件还封装了分页,排序,列自由移动等功能,用起来省心,不用我们去写大量代码。

总结:

       EasyUI的HTML控件封装了一般我们常用的功能,比如说DataGrid的真假分页、列移动,下拉框输入选择等等。而这个OBOUT的ASP控件也封装了这些类似的功能,感觉OBOUT也可以算是ASP的一个框架了,用起来省心方便,不用写太多的代码,控件样式统一,所以界面也看起来美观。
     关于这个ASP的下拉框的既可输入又可选择的实现方式,希望能够提点更多的实现方式,谢谢。。。。。。
   
 


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 32
    评论
控件是基于Asp.Net平台的Web表格控件,用于Web网站的开发。 ★支持多种浏览器(IE6以上、FireFox2.0以上、谷歌浏览器等)。 ★使用本控件开发的网站,网页上表格行的插入、追加、删除、修改、上下移动、拷贝、粘贴等操作,能够立即在浏览器客户端完成,操作按钮在上图表格的左下部。 ★提交后的数据为一个DataTable。用户可使用GetCommitData方法取得使用本控件,很好地节约了网络资源,提升了网站的多用户对应能力。极大地提高了网页的反应速度,提升了网站浏览者的浏览体验。 ★本控件提供了丰富的自定义样式,供开发人员设定使用。表格(GridStyle)、奇偶行(ItemStyle、AlternatingItemStyle)、列(列的ItemStyle)、列内的控件(列的ControlStyle)、合计行(PageTotalStyle、AllTotalStyle)、控制行(包含各种行操作按钮和页操作按钮ToolBarStyle)都可以自由的进行样式设定。 ★提供多种类型的列供开发人员使用:(LabelColumn(图A-金额),TextBoxColumn(图A-数量、单价),DropDownListColumn(图A-类别、商品),RadioButtonListColumn(图A-发货区分),CheckBoxColumn(图A-包装有无),RowIndexColumn(图A-ID),HiddenColumn(隐藏列),TemplateColumn(图A-备注,模板,用于扩展)。 ★支持多行表头显示(图A),支持列合并(图A-发货区分)、行合并(图A-备注)。使用本控件进行开发,开发人员能够自由设定各种显示效果。 ★支持开发人员自定义表头。 ★支持一个数据行,多行表格行表示。避免了列项目多的情况下,网页显示过宽的问题。(图A) ★支持金额、数字的自定义格式化功能。(图A-数量、单价,金额,金额美元) ★支持货币符号的自定义(如:$,¥)。(图A-金额,金额美元) ★支持列的公式自动计算功能。(图A-金额=数量×单价,金额美元=金额/汇率)列设定公式后,在网页上根据因子的变化自动计算结果。结合金额、数字的自定义格式化和货币符号的自定义功能,可开发专业性的财会、金融网站。 ★支持列的Ajax联动功能。特别定义了OnCallBack事件,开发人员能非常简单地实现Ajax联动,而页面不需要刷新。(图A-类别变化的时候,Ajax联动,更新了图A-商品列表) ★支持模板列(TemplateColumn),(图A-备注,模板)。并支持模板列的Ajax联动功能。模板列提供了扩展功能,使页面可以使用本控件支持的列类型之外的控件类型。 ★支持自定义分页(图A定义每页大小为3行)。可由开发人员自行决定网页提交的模式,是小批量多批次,还是大批量少批次。本控件的灵活性提高了网站的灵活适应性。 ★本控件自动提供自带的分页控件,提供页的导航功能(图A右下部)。开发人员也可以禁止本控件提供的分页控件,使用自己的分页控件或按钮调用本控件的分页功能。 ★表格行的上下移动功能,在分页的情况下,当需要跨页的情况下,自动提交数据,执行RowMoving事件,开发者可以在此事件中执行真正的数据行的上下移动,再绑定显示数据。 ★表格行的拷贝、粘贴功能,在分页的情况下,支持跨页执行,支持带Ajax联动列的直接拷贝。 ★支持操作的撤销、恢复功能,提升用户操作体验。 ★支持页合计和全部页合计。支持五种合计类型(Sum,Max,Min,Count,Average)。通过简单的开关设置,就可以完成合计功能。(图A-数量、金额、金额美元,设定了Sum合计;图A-单价,设定了Average合计)。 ★支持多种数据源。 ★所见即所得的设计时支持,方便软件开发者进行页面设计。 ★提供丰富、实用的JS接口,供开发人员使用。 ★本控件的开发中,力求功能的简洁、实用、耐用。提升开发人员的开发体验。 QQ:1030032915 MSN:[email protected]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值