.NET复合控件之可输入的下拉控件
程序员文章站
2022-04-26 21:34:03
...
使用系统;
使用System.Collections.Generic;
使用System.ComponentModel;
使用System.Text;
使用的System.Web;
使用System.Web.UI程序;
使用System.Web.UI.WebControls;
System.Collections中使用;
命名空间QC_Control
{
/// <摘要>
///自定义可输入下拉框类
/// </摘要>
[ToolboxData(“<{0}:CustomInputDropdownControl RUNAT =服务器> </ {0}:CustomInputDropdownControl>”) ]
公共类CustomInputDropdownControl:文本框
{
私人DropDownList的ddlListItem =新的DropDownList(); //下拉框
的私人文本框TxtBox =新的TextBox();
私人Hashtable的_values =新的Hashtable(); //用于绑定下拉框框的值
/// <摘要>
///键值引用变量设置/获取封装方法
/// </摘要>
公开Hashtable的项目
{
获得{
如果(的ViewState [“值”] = = NULL)
{
的ViewState [“值”] =新的Hashtable();
}
其他{}
Hashtable的S =(哈希表)的ViewState [“值”];
返回S;
}
设置{的ViewState [“值”] =值; }
}
/// <摘要>
///默认构造函数
///初始化的DropDownList和Hashtable实例变量
/// </摘要>
公开CustomInputDropdownControl()
{
// this._values =新的Hashtable();
// this.ddlListItem =新的DropDownList();
}
/// <摘要>
///重写控件类渲染方法体
/// </摘要>
/// <param name =“输出”> </ param>的
保护覆盖无效渲染(HtmlTextWriter的输出)
{ddlListItem。 ID =“DDL”+ base.ID;
TxtBox.ID =“TXT」+ base.ID;
//框架的开始
output.Write(“<表CELLSPACING ='0'的cellpadding =”0“边界='0'> <TR> <TD ALIGN =”左“>的<span style ='的位置是:绝对的;边框:为1pt固体#c1c1c1;溢出:隐藏; WIDTH:188px,高度:19px;剪辑:矩形(-1px 190px 190px 170像素);'>“);
//此处之所以用clientID的是因为当在卡片选项时,.NET程序会将base.ID自动命名名字
ddlListItem.Attributes.Add(“的onChange”,getFocusValue(TxtBox.ID,ddlListItem.ID));
ddlListItem.Attributes.Add(“风格”,“宽度:190px; family:宋体;的margin-top:-2px;”);
TxtBox.Attributes.Add(“风格”,“宽度:170像素,高度:15px的;边框:0pt;”);
//遍历数据到下拉框对象中
,如果(this.Item.Count> 0)
{
的foreach(字符串Item.Keys键)
{
列表项项=新的ListItem();
item.Value =键;
item.Text =项目[关键]的ToString();
ddlListItem.Items.Add(项目);
}
}
ddlListItem.RenderControl(输出);
output.Write(“</ SPAN>的<span style ='的位置是:绝对的;边框顶部:固体为1pt#c1c1c1;左边框:为1pt固体#c1c1c1;边框底部:固体为1pt#c1c1c1;宽度:170像素,高度:19px;“>”);
TxtBox.RenderControl(输出);
//框架的结尾
output.Write(“</ SPAN> </ TD> </ T> </ TABLE>”);
}
//响应事件方法
公共字符串getFocusValue(字符串TxtId,串ddlId)
{
回归“Java类”+“CRIPT:”+“的document.getElementById('”+ TxtId +“').value的=的document.getElementById('”+ ddlId +“')可供选项[的document.getElementById('”+ ddlId +“').selectedIndex] .value的;”的ToString();
}
}
}
使用System.Collections.Generic;
使用System.ComponentModel;
使用System.Text;
使用的System.Web;
使用System.Web.UI程序;
使用System.Web.UI.WebControls;
System.Collections中使用;
命名空间QC_Control
{
/// <摘要>
///自定义可输入下拉框类
/// </摘要>
[ToolboxData(“<{0}:CustomInputDropdownControl RUNAT =服务器> </ {0}:CustomInputDropdownControl>”) ]
公共类CustomInputDropdownControl:文本框
{
私人DropDownList的ddlListItem =新的DropDownList(); //下拉框
的私人文本框TxtBox =新的TextBox();
私人Hashtable的_values =新的Hashtable(); //用于绑定下拉框框的值
/// <摘要>
///键值引用变量设置/获取封装方法
/// </摘要>
公开Hashtable的项目
{
获得{
如果(的ViewState [“值”] = = NULL)
{
的ViewState [“值”] =新的Hashtable();
}
其他{}
Hashtable的S =(哈希表)的ViewState [“值”];
返回S;
}
设置{的ViewState [“值”] =值; }
}
/// <摘要>
///默认构造函数
///初始化的DropDownList和Hashtable实例变量
/// </摘要>
公开CustomInputDropdownControl()
{
// this._values =新的Hashtable();
// this.ddlListItem =新的DropDownList();
}
/// <摘要>
///重写控件类渲染方法体
/// </摘要>
/// <param name =“输出”> </ param>的
保护覆盖无效渲染(HtmlTextWriter的输出)
{ddlListItem。 ID =“DDL”+ base.ID;
TxtBox.ID =“TXT」+ base.ID;
//框架的开始
output.Write(“<表CELLSPACING ='0'的cellpadding =”0“边界='0'> <TR> <TD ALIGN =”左“>的<span style ='的位置是:绝对的;边框:为1pt固体#c1c1c1;溢出:隐藏; WIDTH:188px,高度:19px;剪辑:矩形(-1px 190px 190px 170像素);'>“);
//此处之所以用clientID的是因为当在卡片选项时,.NET程序会将base.ID自动命名名字
ddlListItem.Attributes.Add(“的onChange”,getFocusValue(TxtBox.ID,ddlListItem.ID));
ddlListItem.Attributes.Add(“风格”,“宽度:190px; family:宋体;的margin-top:-2px;”);
TxtBox.Attributes.Add(“风格”,“宽度:170像素,高度:15px的;边框:0pt;”);
//遍历数据到下拉框对象中
,如果(this.Item.Count> 0)
{
的foreach(字符串Item.Keys键)
{
列表项项=新的ListItem();
item.Value =键;
item.Text =项目[关键]的ToString();
ddlListItem.Items.Add(项目);
}
}
ddlListItem.RenderControl(输出);
output.Write(“</ SPAN>的<span style ='的位置是:绝对的;边框顶部:固体为1pt#c1c1c1;左边框:为1pt固体#c1c1c1;边框底部:固体为1pt#c1c1c1;宽度:170像素,高度:19px;“>”);
TxtBox.RenderControl(输出);
//框架的结尾
output.Write(“</ SPAN> </ TD> </ T> </ TABLE>”);
}
//响应事件方法
公共字符串getFocusValue(字符串TxtId,串ddlId)
{
回归“Java类”+“CRIPT:”+“的document.getElementById('”+ TxtId +“').value的=的document.getElementById('”+ ddlId +“')可供选项[的document.getElementById('”+ ddlId +“').selectedIndex] .value的;”的ToString();
}
}
}