在需要调用日期选择的页面(WebForm1.aspx)放置两个TEXTBOX与BUTTON以选择开始时间与结束时间,并在html代码的 </body>之前加入如下javascript语句:   <script language="javascript"> 
     function openModeBegin() 
     { 
     var returnValue=window.showModalDialog("CalendarForm2.aspx",Form1.TextBoxBeginDate.value); 
     Form1.TextBoxBeginDate.value=returnValue; 
     } 
  </script> 在本页面WebForm1.aspx.cs代码部分页面加载Page_Load事件内加入如下语句将定义的javascript行为赋予Button:    ButtonBeginDate.Attributes.Add("onclick", "openModeBegin()"); 
 ButtonBeginDate为某一按钮的ID,奇怪的问题就在这时发生了,我运行页面点击 ButtonBeginDate,
并没有执行openModeBegin(),但是如果我把 ButtonBeginDate换成textbox,即Page_Load事件内加入如下语句
TextBoxBeginDate.Attributes.Add("onclick", "openModeBegin()"); 
点击TextBoxBeginDate就可以执行openModeBegin()"); 
请问大侠这是什么原因阿,是不是因为button控件已经有onclick事件了。
请高人指点,都卡在这了,急急急啊。

解决方案 »

  1.   

    <script language="javascript"> 
    function openModeBegin() 

    var returnValue=window.showModalDialog("WebForm6.aspx",Form1.TextBoxBeginDate.value); 
    Form1.TextBoxBeginDate.value=returnValue; 

    </script> 
    private void Page_Load(object sender, System.EventArgs e)
    {
    ButtonBeginDate.Attributes.Add("onclick", "openModeBegin()"); 
    TextBoxBeginDate.Attributes.Add("onclick", "openModeBegin()"); 
    }代码没问题,经测试两个都执行
      

  2.   

    ButtonBeginDate.Attributes.Add("onclick", "openModeBegin();return false"); 
      

  3.   

    在这个时候,你可能双击了BUTTON了,他就会产生一个CLICK的事件,可能会把你的给去掉了,你就在HTML代码中为他加上ONCLICK=“OPENMODEBEGIN()”在后台如果你还有用到CLICK事件时就不再时CLICK事件了,就应是ONSERVERCLICK事件了·