样式:
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" οnpaste="return false;" οnkeydοwn="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" οnfοcus="this.className='input02';this.select();setday(this);"
οnblur="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" οnfοcus="this.className='input02';this.select();"
οnblur="this.className='input01';DBC2SBC(this);" Width="60px" Style="ime-mode: disabled"
οnkeypress="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" οnclick='save();' value=" 确定 " class="btn02"
οnmοuseοver="this.className='btn04'" οnmοuseοut="this.className='btn02'" />
<input type='button' οnclick='window.close();' value='取消' class="btn02" οnmοuseοver="this.className='btn04'"
οnmοuseοut="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;
}