ComponentArt:ComboBox 绑定值的方法

本文详细介绍了组件Art控件在Web开发中的应用,包括样式设置、JavaScript交互方式、树形结构绑定、多级联动实现等内容,并提供了丰富的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

样式:

 

comboBox的js取值:

一)componentArt控件在js取值都不需要document.getElementById(),直接用的id

例如<componentArt:combox id="cb_comboBox" runat="server"/>

1.if(cb_comboBox .getSelectedItem() ==null||cb_comboBox .SelectedIndex == 0)
            {
                alert("请选择分公司名称!")
                   cb_comboBox .focus();
                    return false;
            }

 

2.cb_comboBox.get_text().Trim()

二)设置值:cb_comboBox.set_text(carNumber);

三)启用:cb_comboBox.enable();

四)禁用: cb_comboBox.disable();

 

一般的绑定:类型dropdownlist,只是显示

 

 

两级联动:

 

 

绑定枚举:

 

年龄的绑定:

 

 

comboBox与textbox的联动

 

 

comboBox绑定树:

 

comboBox绑定固定内容的树

 

comboBox绑定不固定的树

 

树的事件绑定动态的dataList

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Serv_FittingsSetAddInsert.aspx.cs"
    Inherits="YC.SH.WEB.Service.Serv_FittingsSetAddInsert" %>

<%@ Register Assembly="ComponentArt.Web.UI" Namespace="ComponentArt.Web.UI" TagPrefix="ComponentArt" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Cache-Control" content="no-cache" />
    <meta http-equiv="Expires" content="0" />
    <title>清点配件添加</title>
    <link href="../App_Themes/DefaultThemes/main.css" rel="stylesheet" type="text/css" />
    <link href="../App_Themes/DefaultThemes/dialog.css" rel="stylesheet" type="text/css" />
    <link href="../App_Themes/DefaultThemes/submit.css" rel="stylesheet" type="text/css" />
    <link href="../App_Themes/DefaultThemes/treeStyle.css" rel="stylesheet" type="text/css" />
    <link href="../App_Themes/DefaultThemes/combobox.css" rel="stylesheet" type="text/css" />

    <script src="../js/calendars.js" type="text/javascript"></script>

    <script type="text/javascript" src="../js/validate.js"></script>

    <style type="text/css">
        li, ul, dt, form, ol, FIELDSET, p, h1, h2, h3, h4, h5, TABLE, IMG, dl, dt, dd
        {
            margin: 0px;
            padding: 0px;
            border: 0px;
            list-style: none;
        }
        body
        {
            margin: 0;
            padding: 0;
            text-align: center;
            font-size: 12px;
        }
        A:link, A:visited
        {
            font: "宋体";
            color: #1c1c1c;
            text-decoration: none;
        }
        A:hover, A:active
        {
            text-decoration: underline;
            color: #000000;
        }
        .list_kt
        {
            height: 30px;
            width: 500px;
            background: #BFEFFF;
            border: #B0E2FF solid 1px;
            margin: 3px auto;
            font-weight: bold;
        }
        .list_kt .lkttbt
        {
            float: left;
            width: 200px;
            line-height: 30px;
            text-align: left;
            margin-left: 10px;
        }
        .list_kt .lktxbt
        {
            line-height: 30px;
            font-size: 12px;
            width: 100px;
            float: left;
        }
        .list_kt .lktxrt
        {
            line-height: 30px;
            font-size: 12px;
            width: 65px;
            float: right;
            margin-right: 10px;
            text-align: center;
        }
        .list_kb
        {
            height: 30px;
            width: 500px;
            background: #FDF9D6;
            border: #FECC46 solid 1px;
            margin: 3px auto;
        }
        .list_kb .lkttb
        {
            float: left;
            width: 200px;
            line-height: 30px;
            text-align: left;
            margin-left: 10px;
        }
        .list_kb .lktxb
        {
            line-height: 30px;
            font-size: 12px;
            width: 100px;
            float: left;
        }
        .list_kb .lktxr
        {
            line-height: 30px;
            font-size: 12px;
            width: 65px;
            float: right;
            margin-right: 10px;
            text-align: center;
        }
        .list_kb .lktxr input
        {
            height: 21px;
            width: 46px;
            line-height: 20px;
            border: #87A3C1 solid 1px;
            margin-top: 2px;
            color: #333;
        }
        .list_kb .txtext
        {
            float: left;
            margin-right: 3px;
            width: 150px;
            text-align: right;
            vertical-align: middle;
        }
        .list_kb .intext
        {
            padding-top: 3px;
        }
    </style>

    <script type="text/javascript" language="javascript">
        function tv_carNumber_OnNodeSelect(sender, eventArgs) {
            cb_carNumber.set_text(eventArgs.get_node().get_text()); //设置comboxtext
            cb_carNumber.collapse();
            Callback_Edit.callback("carNumber", eventArgs.get_node().get_text());
        }
        //保存dialog的数据
        function save() {
            if (saveValidate()) {
                var obj = document.getElementById("<%=DataList1.ClientID%>");
                var objstr = "";
                if (obj != null) {
                    var objItemList = obj.getElementsByTagName("input");
                    for (var i = 0; i < objItemList.length; i++) {
                        if (objItemList[i] != null && objItemList[i].type == "hidden") {
                            objstr += objItemList[i].value + "|";
                        } else {
                            objstr += objItemList[i].value + "*";
                        }
                    }
                }
                if (objstr != "" && objstr.length > 0) {
                    objstr = objstr.substring(0, objstr.length - 1);
                }
                //                alert(objstr);

                callBack_save.callback("save", objstr);
            }
        }

        //保存的前台验证
        function saveValidate() {
            var carNumber = cb_carNumber.get_text();
            var tb_checkTime = document.getElementById("tb_checkTime");
            if (carNumber == null || carNumber == "--请选择车牌号码--") {
                alert("请选择车牌号码!");
                cb_carNumber.focus();
                return false;
            }
            if (!checkInputValueIsEmpty(tb_checkTime)) {
                alert("请选入清点时间!");
                tb_checkTime.focus();
                return false;
            }
            var obj = document.getElementById("<%=DataList1.ClientID%>");
            var objItemList = obj.getElementsByTagName("input");
            if (obj != null) {
                for (var t = 0; t < objItemList.length; t++) {
                    if (objItemList[t].type == "text") {
                        if (objItemList[t].value == "") {
                            objItemList[t].focus();
                            return false;
                        }
                    }
                }
            }

            return true;
        }

        //刷新窗口
        function refreshPage() {
            window.returnValue = true;
            window.close();
        }
    </script>

</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:HiddenField ID="hf_command" runat="server" />
        <ComponentArt:CallBack ID="callBack_save" runat="server" PostState="true" OnCallback="callBack_save_Callback" />
        <table cellpadding="0" cellspacing="0">
            <tr>
                <td>
                    <table cellpadding="0" cellspacing="0" width="500px">
                        <tr>
                            <td style="width: 65px" align="right" nowrap>
                                车牌号码:
                            </td>
                            <td style="width: 150px" onpaste="return false;" onkeydown="return false;">
                                <ComponentArt:ComboBox ID="cb_carNumber" runat="server" AutoFilter="false" AutoHighlight="false"
                                    AutoComplete="false" CssClass="comboBox" HoverCssClass="comboBoxHover" FocusedCssClass="comboBoxHover"
                                    TextBoxCssClass="comboTextBox" DropDownCssClass="comboDropDown" ItemCssClass="comboItem"
                                    ItemHoverCssClass="comboItemHover" SelectedItemCssClass="comboItemSelect" DropHoverImageUrl="../App_Themes/images/combox/drop_hover.gif"
                                    DropImageUrl="../App_Themes/images/combox/drop.gif" Width="153" DropDownHeight="297"
                                    DropDownWidth="216">
                                    <DropDownContent>
                                        <ComponentArt:TreeView ID="tv_carNumber" DragAndDropEnabled="false" NodeEditingEnabled="false"
                                            NodeCssClass="TreeNode" SelectedNodeCssClass="SelectedTreeNode" HoverNodeCssClass="HoverTreeNode"
                                            NodeEditCssClass="NodeEdit" LineImageWidth="19" LineImageHeight="20" DefaultImageWidth="16"
                                            DefaultImageHeight="14" ItemSpacing="0" NodeLabelPadding="3" ImagesBaseUrl="../App_Themes/images/Main/"
                                            LineImagesFolderUrl="../App_Themes/images/Treeview/" ShowLines="true" EnableViewState="true"
                                            runat="server">
                                            <ClientEvents>
                                                <NodeSelect EventHandler="tv_carNumber_OnNodeSelect" />
                                            </ClientEvents>
                                        </ComponentArt:TreeView>
                                    </DropDownContent>
                                </ComponentArt:ComboBox>
                            </td>
                            <td style="width: 3px" align="left">
                                <span style="color: Red">*</span>
                            </td>
                            <td align="right" style="width: 80px" nowrap>
                                清点时间:
                            </td>
                            <td style="width: 150px">
                                <asp:TextBox ID="tb_checkTime" runat="server" CssClass="input05" Width="150px" onfocus="this.className='input02';this.select();setday(this);"
                                    onblur="this.className='input01';DBC2SBC(this);" />
                            </td>
                            <td align="left">
                                <span style="color: Red">*</span>
                            </td>
                        </tr>
                        <tr>
                            <td colspan="6">
                                <ComponentArt:CallBack ID="Callback_Edit" runat="server" PostState="true" OnCallback="CallBack_Edit_Callback">
                                    <Content>
                                        <asp:PlaceHolder ID="pl_checkData" runat="server">
                                            <asp:DataList ID="DataList1" runat="server" BorderWidth="0" CellPadding="0" CellSpacing="1">
                                                <HeaderTemplate>
                                                    <div class="list_kt">
                                                        <div class="lkttbt">
                                                            配件名称
                                                        </div>
                                                        <div class="lktxbt">
                                                            上次清点数
                                                        </div>
                                                        <div class="lktxrt">
                                                            本次清点数
                                                        </div>
                                                    </div>
                                                </HeaderTemplate>
                                                <ItemTemplate>
                                                    <div class="list_kb">
                                                        <div class="lkttb">
                                                            <asp:HiddenField ID="hid_id" runat="server" Value='<%# DataBinder.Eval(Container.DataItem, "配件ID")%>' />
                                                            <%# DataBinder.Eval(Container.DataItem, "配件名称")%>
                                                        </div>
                                                        <div class="lktxb">
                                                            <%# DataBinder.Eval(Container.DataItem, "配件数量")%>
                                                        </div>
                                                        <div class="lktxr">
                                                            <asp:TextBox ID="tb_thisCount" runat="server" MaxLength="30" CssClass="input05" onfocus="this.className='input02';this.select();"
                                                                onblur="this.className='input01';DBC2SBC(this);" Width="60px" Style="ime-mode: disabled"
                                                                onkeypress="KeyPressNum(this);" />
                                                        </div>
                                                    </div>
                                                </ItemTemplate>
                                                <FooterTemplate>
                                                    </table>
                                                </FooterTemplate>
                                            </asp:DataList>
                                        </asp:PlaceHolder>
                                    </Content>
                                </ComponentArt:CallBack>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr>
                <td align="center">
                    <input type="button" id="DialogButton" onclick='save();' value=" 确定 " class="btn02"
                        onmouseover="this.className='btn04'" onmouseout="this.className='btn02'" />
                    <input type='button' onclick='window.close();' value='取消' class="btn02" onmouseover="this.className='btn04'"
                        onmouseout="this.className='btn02'" />
                </td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>

--后台--
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using YC.SH.Service;
using YC.DB.DataSource;
using SHIB3.DataAccess.T;
using System.Data;
using ComponentArt.Web.UI;
using YC.SH.Sevice;

namespace YC.SH.WEB.Service
{
    public partial class Serv_FittingsSetAddInsert : PageBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                BindTreeView();
                tb_checkTime.Attributes.Add("readOnly","readOnly");
                hf_command.Value = "insert";
            }
        }


        /// <summary>
        /// 绑定数据源
        /// </summary>
        private void bingSource(string filter)
        {
            ObjModelDataSource<VIEW_随车配件设置> obj = new ObjModelDataSource<VIEW_随车配件设置>(filter);
            DataList1.DataSource = obj;
            DataList1.DataBind();

        }


        /// <summary>
        /// 绑定树
        /// </summary>
        private void BindTreeView()
        {
            //清除树节点
            tv_carNumber.Nodes.Clear();
            TreeViewNode parentsNode = new TreeViewNode();
            parentsNode.ImageUrl = "folder.gif";
            parentsNode.ExpandedImageUrl = "folder_open.gif";
            cb_carNumber.Text = parentsNode.Text = "--请选择车牌号码--";
            parentsNode.Value = "-1,-1";
            parentsNode.Expanded = true;
            tv_carNumber.Nodes.Add(parentsNode);

            string filter = string.Empty;
            ObjModelDataSource<分公司信息> source = new ObjModelDataSource<分公司信息>(DataSourceType.全部读取, filter);
            source.AddCandidate(分公司信息.Col_ID, 分公司信息.Col_公司名称);
            source.OrderStr = string.Format("{0} asc", 分公司信息.Col_排序);
            foreach (DataRow dept in source.DataObjectSource.Tables[0].Rows)
            {
                TreeViewNode node = new TreeViewNode();
                node.Text = dept[分公司信息.Col_公司名称].ToString();

                if (dept[分公司信息.Col_ID].ToString() == "0")
                {
                    node.ImageUrl = "mastcompany1.png";
                    node.ToolTip = "总公司";
                    node.ExpandedImageUrl = "mastcompany2.png";
                }
                else
                {
                    node.ImageUrl = "company1.png";
                    node.ToolTip = "分公司";
                    node.ExpandedImageUrl = "company2.png";
                }
                node.Expanded = false;
                node.Selectable = false;//不能被选择
                node.Value = string.Format("{0},{1}", dept[分公司信息.Col_ID], "0");
                string url = string.Format("../TreeViewUrl.aspx?parentID={0}&chlidType=3", Server.UrlEncode(dept[分公司信息.Col_ID].ToString()));
                node.ContentCallbackUrl = url;
                parentsNode.Nodes.Add(node);
            }
        }


        //添加
        protected void callBack_save_Callback(object sender, ComponentArt.Web.UI.CallBackEventArgs e)
        {
            string js = string.Empty;
            string[] pars = e.Parameters;
            switch (pars[0])
            {
                case "save":
                    string comm = hf_command.Value;
                    switch (comm)
                    {
                        case "insert":
                            int insertResult = Insert(pars[1]);

                            switch (insertResult)
                            {
                                case 0:
                                    js = "<script>alert('添加成功!');refreshPage();</script>";
                                    break;
                                case 2:
                                    js = "<script>alert('数据库操作失败!')</script>";
                                    break;
                            }
                            break;
                    }
                    break;

                default:
                    break;
            }
            if (!string.IsNullOrEmpty(js))
            {
                e.Output.Write(js);
            }
        }


        //操作
        protected void CallBack_Edit_Callback(object sender, ComponentArt.Web.UI.CallBackEventArgs e)
        {
            string js = string.Empty;
            string[] pars = e.Parameters;
            switch (pars[0])
            {
                case "carNumber":
                    string filter = string.Format("{0}='{1}'", VIEW_随车配件设置.Col_车牌号码, pars[1]);
                    bingSource(filter);
                    break;
                default:
                    break;
            }
            pl_checkData.RenderControl(e.Output);
        }


        /// <summary>
        /// 添加
        /// </summary>
        /// <returns></returns>
        private int Insert(string strValue)
        {
            int result = 0;
            FittingsCheckRecord fittingCheckRecord = new FittingsCheckRecord();
            List<配件清点记录> list = new List<配件清点记录>();

            string[] strList = strValue.Split('*');

            for (int i = 0; i < strList.Length; i++)
            {

                string[] objvalue = strList[i].Split('|');


                //foreach (DataListItem item in DataList1.Items)
                //{
                //  Label lb_配件ID = item.FindControl("Label1") as Label;

                配件清点记录 obj = new 配件清点记录();
                obj.配件ID = objvalue[0];
                obj.清点人 = LoginUser.LoginName;
                obj.车牌号码 = cb_carNumber.Text;
                obj.配件数量 = Convert.ToDecimal(objvalue[1]);
                obj.清点时间 = Convert.ToDateTime(tb_checkTime.Text);
                list.Add(obj);
                //}
            }
            bool resultResult = false;
            if (list != null && list.Count > 0)
            {
                resultResult = fittingCheckRecord.FittingsCheckRecordListInsert(list, LoginUser);
            }
            if (resultResult)
            {
                result = 0;
            }
            else
            {
                result = 2;
            }
            return result;
        }


    }
}

---添加方法--

        /// <summary>
        /// 添加配件清点记录
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="user"></param>
        /// <returns>true 成功,false 失败</returns>
        public bool FittingsCheckRecordListInsert(List<配件清点记录> List, SysUser user)
        {
            bool result = false;
            using (DatabaseCommand db = DBFactory.CreateDB(配件清点记录.DBNAME))
            {
                if (List != null)
                {
                    db.BeginTransaction();
                    foreach (配件清点记录 obj in List)
                    {
                        result = db.InsertObj(obj);
                        if (result)
                        {
                            if (user != null)
                            {
                                string context = string.Format("添加ID为{0}的配件清点记录", obj.ID);
                                操作日志 log = LogCommand.getLog(user.UserName, user.UserID, "添加配件清点记录", 页面, context);
                                db.InsertObj(log);
                            }
                        }
                        else
                        {
                            break;
                        }
                    }
                    if (result)
                    {
                        db.Commit();
                    }
                    else
                    {
                        db.Rollback();
                    }
                }
            }
            return result;
        }


 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来杯水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值