Asp.net可输入下拉框服务器控件 C#版

2023-11-07

//备注:改自Ryan Liu (dpliu@cbdsystem.com.cn)vb.net
using System;
using System.Collections;
using System.ComponentModel; 
using System.Web.UI; 
using System.Web.UI.Design; 
using System.Web.UI.WebControls; 

namespace CBDAspNet.WebControls.HTML 

[ToolboxData("<{0}:TextBox runat=/"server/" />")
public class TextBox : System.Web.UI.WebControls.TextBox 

private Hashtable _values; 
public DropDownList _DropDownList; 

public TextBox() 

_DropDownList = new DropDownList(); 
_values = new Hashtable(); 


public Hashtable Values 

get 

return _values; 

set 

_values = value; 



protected override void Render(System.Web.UI.HtmlTextWriter Output) 

int iWidth = Convert.ToInt32(base.Width.Value); 
if (iWidth == 0) 

iWidth = 102; 

int sWidth = iWidth + 16; 
int spanWidth = sWidth - 18; 
Output.Write("<div style=/"POSITION:relative/">")
Output.Write("<span style=/"MARGIN-LEFT:" + spanWidth + "px;OVERFLOW:hidden;WIDTH:18px/">")
_DropDownList.Width = Unit.Parse(sWidth + "px")
_DropDownList.Style.Add("MARGIN-LEFT", "-" + spanWidth + "px")
_DropDownList.Attributes.Add("onchange", "this.parentNode.nextSibling.value=this.value")
if (_values.Count > 0) 

foreach (string key in _values.Keys) 

ListItem item = new ListItem(); 
item.Value = key; 
item.Text = _values[key].ToString(); 
_DropDownList.Items.Add(item); 



//如果只有一个可选内容
if (_DropDownList.Items.Count == 1) 

ListItem item = new ListItem(); 
item.Value = ""; 
item.Text = " "; 
_DropDownList.Items.Add(item); 
_DropDownList.SelectedIndex = 1; 

_DropDownList.RenderControl(Output); 
Output.Write("</span>")
base.Style.Clear(); 
base.Width = Unit.Parse(iWidth + "px")
base.Style.Add("left", "0px")
base.Style.Add("POSITION", "absolute")
base.Render(Output); 
Output.Write("</div>")


}
 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Asp.net可输入下拉框服务器控件 C#版 的相关文章

随机推荐

  • 线性表顺序存储及相关操作(创建,插入,删除,遍历)

    线性表类型的定义 线性表是由同类数据元素构成的有序序列的线性结构 表中元素个数 n gt 0 称为线性表的长度 n 0时称为空表 在复杂线性表中 一个数据元素可以由若干个数据项 item 组成 这种情况下 常把数据元素称为记录 record
  • Linux 入门笔记(根据传智韩顺平整理的(一))

    开发步骤 1 Vi Hello java 2 输入i进入插入模式 3 输入esc 进入命令模式 4 输入 冒号 wq保存退出 q 退出不保存 5 编译Hello java gt javac Hello java 6 运行 java Hell
  • C++如何显示一个函数被调用的次数

    问题1 如何显示一个函数被调用的次数 使用static关键字 汉诺塔问题局部 void move char src char dest static int n 1 n具有全局寿命 但是局部可见 cout lt
  • 什么是漏洞扫描?

    首先什么是漏洞 国内外各种规范和标准中关于漏洞 也称脆弱性 英文对应Vulnerability 的定义很多 摘录如下 互联网工程任务组RFC4949 1 系统设计 部署 运营和管理中 可被利用于违反系统安全策略的缺陷或弱点 中国国家标准 信
  • 分布式与高并发(一)了解多线程的意义和使用

    了解多线程的意义和使用 什么是线程 并发与高并发 客户端向Tomcat发送请求 在Tomcat中存在多个个并发数 这个并发数由什么决定的 并发 单位时间内能够同时处理的请求数 默认情况下Tomcat可以支持的最大请求数是150 也就是同时支
  • 资深测试老鸟整理,性能测试-常见调优详细,卷起来...

    目录 导读 前言 一 Python编程入门到精通 二 接口自动化项目实战 三 Web自动化项目实战 四 App自动化项目实战 五 一线大厂简历 六 测试开发DevOps体系 七 常用自动化测试工具 八 JMeter性能测试 九 总结 尾部小
  • python报错“No module named xarray”

    在python运行 import xarray as xr 报错 No module named xarray 在命令提示符中显示已安装 一 检查 1 确认 Python 解释器路径 运行以下代码 查看正在使用的 Python 解释器路径
  • python:playwright结合pytest执行用例

    playwright结合Pytest为您的 Web 应用程序编写端到端的测试 安装pytest插件 C Users lifeng01 gt pip install pytest playwright Collecting pytest pl
  • Linux下CMake编译链接线程库以及线程绑定

    CMake编译链接线程库 1 设置链接选项 使用 CMake 编译程序时 需要设置链接选项来链接 pthread 库 在 CMakeLists txt 文件中添加链接选项 即在add executable 下面添加以下代码将 pthread
  • Tomcat性能优化(二)

    六 NIO连接器前端整体框图 1 图解tomcat总体流程 源码详细分析解读见视频 连接器在Tomcat中是一个重要的组件 叫做Tomcat前端 这个前端框架不是通常我们讲的Web前端 那是structs javascript jsp这些内
  • A记录,子域名,CNAME,MX,TXT,SRV

    http zhanghucheng cn post 8 A记录 A Address 记录是用来指定主机名 或域名 对应的IP地址记录 用户可以将该域名下的网站服务器指向到自己的web server上 同时也可以设置您域名的子域名 通俗来说A
  • Git:Unable to negotiate with错误

    今天更新了一下Git版本 发现推送代码的时候提示 Unable to negotiate with xx xx xx xx port 29418 no matching host key type found Their offer ssh
  • JS 如何将数组对象中多个特定值取出形成新数组

    有如下数据 list mainId 581 errMsg null sort null status null nowFarmId null nowPigstyId null insideEarCode MT5687G pigEntityC
  • Linux操作系统原理与应用实验 实验三 实验四 问题总结

    本文是在进行Linux实验三和实验四所遇到的问题或学到的小知识进行总结 以调通程序为内容导向 问题的解决方法或许不难 也都能搜到 但是如果笔者自己总结下来能够节省很多人去搜索解决方法的繁琐步骤 节省大家的时间 实验三 文件操作算法 新版本带
  • gdb调试动态链接库

    转自 http www cnblogs com ybgame archive 2012 03 23 2414078 html 在 Linux 可以用 gdb 来调试应用程序 当然前提是用 gcc 编译程序时要加上 g 参数 我这篇文章里将讨
  • ML学习笔记(二)----交叉验证、偏差和方差分析

    什么是交叉验证 交叉验证是一种模型验证技术 可用于评估统计分析 模型 结果在其它独立数据集上的泛化能力 它主要用于预测 我们可以用它来评估预测模型在实践中的准确度 交叉验证的目标是定义一个数据集 以便于在训练阶段 例如 验证数据集 中测试模
  • JAVA中类的加载过程

    摘自 http soft chinabyte com database 312 12643812 shtml http www cnblogs com yshb archive 2012 11 05 2756194 html 类的生命周期
  • 0.96寸oled显示坏苹果(badapple)

    前言 俗话说 有屏幕的地方就会有badapple 下面带来使用0 96寸OLED屏幕显示badapple的教程 1 获取视频 首先从网上下载badapple的视频 下载地址 badapple 2 抓取视频图片 使用OLED播放视频的思想就是
  • 微信小程序开发课程学习总结(关于电影的内容)

    微信小程序开发课程学习总结 关于电影的内容 最终效果 课程学习网址 让我们开始第一步 一堆页面简介 app js 文件 app json文件 app wxss文件 好了正式开始第一个页面 新闻详情页面 电影模块 关于Template 模板
  • Asp.net可输入下拉框服务器控件 C#版

    备注 改自Ryan Liu dpliu cbdsystem com cn vb net using System using System Collections using System ComponentModel using Syst