zoukankan      html  css  js  c++  java
  • 为listbox添加双击事件

    我在用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;
                               TargetControlName = "document.Form1." +  TargetControlName;

           string js = "<script language=javascript> function change(SourceControlName,TargetControlName)";
                               js += "{";
                               js +=     "var addOption=document.createElement( option ); \n";
                               js += "  var index1; \n";
                               js += "if(SourceControlName.length==0)return(false);\n";
                               js += "  index1=SourceControlName.selectedIndex; \n ";
                               js += "  if(index1<0)return(false);\n";
                               js += " addOption.text=SourceControlName.options(index1).text; \n";
                               js += "addOption.value=SourceControlName.value; \n";
                               js += "TargetControlName.add(addOption); \n";
                               js += "SourceControlName.remove (index1) \n";                           
          js +="}";
                               js += "</script>";
                                //注册该 javascript ;
                               page.RegisterStartupScript("",js);
                                //为控件添加双击事件;
                               webcontrol.Attributes.Add("onDblClick","change(" + SourceControlName + "," + TargetControlName + ");");
                         }
               &nbsp;   在该方法中,SourceControlName是要绑定双击事件的控件,TargetControlName是接收双击事件选定项的控件。   
                        这里有一个问题,如何让对象作为参数传给javascript的change函数,我这里采用的是用  SourceControlName  ,TargetControlName 来传递两个ListBox的Name, 然后与“document.Form1.“组合成一个串来传递给javascript的change函数,即
                               SourceControlName = "document.Form1." +  SourceControlName;
                               TargetControlName = "document.Form1." +  TargetControlName;

            第三:如何为控件添加双击事件?
                        用ControlName.Attributes.Add(“属性名称”,“函数名称或代码”);

  • 相关阅读:
    POJ-1004-Finanical Management
    POJ-1003-hangover
    第一次写博客,想了很久要给自己留一个什么样的开始
    从exchange2010上面删除特定主题或特定时间的邮件
    STM32 一个定时器产生4路 独立调频率,占中比可调,脉冲个数可以统计。
    光电耦合
    STM32 定时器级联
    Eclipse 创建新的workspace
    一次提交,多文件上传
    Grid标签计算结果集中的合计行
  • 原文地址:https://www.cnblogs.com/Godblessyou/p/1778999.html
Copyright © 2011-2022 走看看