试做一个复合控件,由两个DropDownList组成。接收外部传进来的datasouce,暂指定类型为datatable。两个DropDownList的datasouce为该datatable的不同视图。但是在用的时候发现两个DropDownList绑定的内容都一样,都是第二个DropDownList所绑定的内容,不知道是什么原因?
部分代码如下: [Bindable(true), Category("Data"), DefaultValue(null), Description("The data source"), DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public object DataSource
{
get
{
EnsureChildControls();
return _DataSouce; }
set
{
EnsureChildControls();
_DataSouce = value; ddl1 = new DropDownList();
ddl2 = new DropDownList(); DataTable dt = (DataTable)(_DataSouce);
DataView dv1 = new DataView();
dv1 = dt.DefaultView;
dv1.RowFilter = "len(ID) = 3";
ddl1.DataSource = dv1;
DataView dv2 = dt.DefaultView;
dv2.RowFilter = "len(ID) = 6 and ID like '001%'";
ddl2.DataSource = dv2;
}
} protected override void CreateChildControls()
{
Controls.Clear(); ddl1 = new DropDownList();
ddl1.ID = "ddl1";
ddl1.Height = Unit.Pixel(25);
Controls.Add(ddl1); ddl2 = new DropDownList();
ddl2.ID = "ddl2";
ddl2.Height = Unit.Pixel(25);
Controls.Add(ddl2); //base.CreateChildControls (); }
程序中没有重写DataBind,望dx赐教啊
部分代码如下: [Bindable(true), Category("Data"), DefaultValue(null), Description("The data source"), DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public object DataSource
{
get
{
EnsureChildControls();
return _DataSouce; }
set
{
EnsureChildControls();
_DataSouce = value; ddl1 = new DropDownList();
ddl2 = new DropDownList(); DataTable dt = (DataTable)(_DataSouce);
DataView dv1 = new DataView();
dv1 = dt.DefaultView;
dv1.RowFilter = "len(ID) = 3";
ddl1.DataSource = dv1;
DataView dv2 = dt.DefaultView;
dv2.RowFilter = "len(ID) = 6 and ID like '001%'";
ddl2.DataSource = dv2;
}
} protected override void CreateChildControls()
{
Controls.Clear(); ddl1 = new DropDownList();
ddl1.ID = "ddl1";
ddl1.Height = Unit.Pixel(25);
Controls.Add(ddl1); ddl2 = new DropDownList();
ddl2.ID = "ddl2";
ddl2.Height = Unit.Pixel(25);
Controls.Add(ddl2); //base.CreateChildControls (); }
程序中没有重写DataBind,望dx赐教啊
using System;
using System.Web.UI;
using System.ComponentModel;
using System.Web.UI.WebControls;
using System.Collections;
using System.Data;
using System.Web;
using System.Collections.Specialized;namespace WmsControlLibrary
{
/// <summary>
/// DualDropDownList 的摘要说明。
/// </summary>
///
///
[ToolboxData(" <{0}:DualDropDownList runat='server' style='position:absolute; width:500px; height:25 px'/>") ]
public class DualDropDownList:System.Web.UI.WebControls.WebControl, INamingContainer
{
public DualDropDownList()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
private System.Web.UI.WebControls.DropDownList ddl1 = null;
private System.Web.UI.WebControls.DropDownList ddl2 = null;
private object _DataSouce = null;
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public Unit DropDownListWidth
{
get
{
EnsureChildControls();
return this.ddl1.Width;
}
set
{
EnsureChildControls();
this.ddl1.Width = value;
this.ddl2.Width = value;
}
}
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public string FieldValue
{
get
{
EnsureChildControls();
return this.ddl1.DataValueField;
}
set
{
EnsureChildControls();
this.ddl1.DataValueField = value;
this.ddl2.DataValueField = value;
}
} [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public string FieldText
{
get
{
EnsureChildControls();
return this.ddl1.DataTextField;
}
set
{
EnsureChildControls();
this.ddl1.DataTextField = value;
this.ddl2.DataTextField = value;
}
} [Bindable(true), Category("Data"), DefaultValue(null), Description("The data source"), DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public object DataSource
{
get
{
EnsureChildControls();
return _DataSouce; }
set
{
EnsureChildControls();
_DataSouce = value;// ddl1 = new DropDownList();
// ddl2 = new DropDownList(); DataTable dt = (DataTable)(_DataSouce);
DataView dv1 = new DataView();
dv1 = dt.DefaultView;
dv1.RowFilter = "len(ID) = 3";
ddl1.DataSource = dv1;
//ddl1.DataSource = _DataSouce;
DataView dv2 = dt.DefaultView;
dv2.RowFilter = "len(ID) = 6 and ID like '001%'";
ddl2.DataSource = dv2;
//ddl2.DataSource = _DataSouce;
}
} protected override void CreateChildControls()
{
Controls.Clear(); ddl1 = new DropDownList();
ddl1.ID = "ddl1";
ddl1.Height = Unit.Pixel(25);
Controls.Add(ddl1); ddl2 = new DropDownList();
ddl2.ID = "ddl2";
ddl2.Height = Unit.Pixel(25);
Controls.Add(ddl2); //base.CreateChildControls (); } }
}