当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 为.net中的ListBox控件添加双击事件

ASP.NET
关于.NET动态代理的介绍和应用简介
ASP.NET2.0服务器控件之类型转换器
ASP.net做的IP访问限制
Asp.Net2.0权限树中Checkbox的操作
ASP.NET数据库编程之Access连接失败
ASP.NET 2005 Treeview终极解决方案
ASP.NET数据库编程之处理文件访问许可
ASP.NET 2.0中的页面输出缓存
ASP.NET 2.0服务器控件开发之复杂属性
ASP.NET2.0中数据源控件之异步数据访问
將datagrid控件內容輸出到excel文件
ASP.NET技巧:教你制做Web实时进度条
实现基于事件通知的.Net套接字
ASP.NET技巧:同时对多个文件进行大量写操作对性能优化
ASP.NET中根据XML动态创建使用WEB组件
QQ关于.net的精彩对话
ASP.NET技巧:access下的分页方案
为自己的ASP网站系统构建一套标记语言
Visual Studio.Net 内幕(6)
Asp.Net中NHiernate的Session的管理

ASP.NET 中的 为.net中的ListBox控件添加双击事件


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 236 ::
收藏到网摘: n/a


我在用dotnet做一个项目的过程中,遇到了一个ListBox的问题:通过在一个ListBox中双击,把选中的项添加到另一个ListBox中,但ListBox控件本身并没有该事件,那么如何实现呢?我就想到了客户端脚本javascrit,通过查阅相关资料,终于把这个问题解决了,现在写出来与大家分享,希望能对大家有所帮助。
这里有三个问题:
第一:双击所要执行的javascript代码是什么?
注意:javascript代码的语法要正确,即每一行都要以“;”结尾;
function change()
{
var addOption=document.createElement("option");
var index1;
if(document.Form1.ListBox1.length==0)return(false);
index1=document.Form1.ListBox1.selectedIndex;
if(index1<0)return(false);
addOption.text=document.Form1.ListBox1.options(index1).text;
addOption.value=document.Form1.ListBox1.value;
document.Form1.ListBox2.add(addOption);
document.Form1.ListBox1.remove (index1);
}
第二:如何将 javascript 代码转换为C#代码?
public static void ListBox_DblClick(Page page,System.Web.UI.WebControls.WebControl webcontrol,string SourceControlName,string TargetControlName)
{
SourceControlName = "document.Form1." + SourceControlName;
";
//注册该 javascript ;
page.RegisterStartupScript("",js);
//为控件添加双击事件;
webcontrol.Attributes.Add("onDblClick","change(" + SourceControlName + "," + TargetControlName + ");");
}
在该方法中,SourceControlName是要绑定双击事件的控件,TargetControlName是接收双击事件选定项的控件。
这里有一个问题,如何让对象作为参数传给javascript的change函数,我这里采用的是用 SourceControlName ,TargetControlName 来传递两个ListBox的Name, 然后与“document.Form1.“组合成一个串来传递给javascript的change函数,即
SourceControlName = "document.Form1." + SourceControlName;
TargetControlName = "document.Form1." + TargetControlName; 第三:如何为控件添加双击事件? 用ControlName.Attributes.Add(“属性名称”,“函数名称或代码”);