创建文本&按钮动态控制并使用日期值填充文本框

时间:2014-08-21 14:47:33

标签: asp.net vb.net datepicker onclientclick

我目前有一个动态构建文本框的VB.Net应用程序 我需要显示一个按钮控件,它将显示一个日期选择器,然后用所选的日期值填充相应的文本框。

我正在动态创建btnCalendar,因为特定页面上有多个日历按钮,因此btnCalendar.ID = tab.ID & grdRowID

Protected Sub DisplaySearchWindow()
Dim ddl As DropDownList
Dim txt As TextBox
Dim cal As Calendar
Dim btnCalendar As Button 

Select Case iIndex
  Case 1
     Dim cv As New CompareValidator
     txt = New TextBox
     txt.ID = "txt" & UserName & grdRowID.Name
     cv.ControlToValidate = txt.ID
     btnCalendar = New Button
     btnCalendar.ID = "btnCalDisplay" & tab.ID & grdRowID
     btnCalendar.Text = "+"
     btnCalendar.ToolTip = "click to view calendar" 
     btnCalendar.Attributes.Add("OnClientClick", "javascript:return ShowAlert('Hi');")
     c.Controls.Add(cv)
     c.Controls.Add(txt)
     c.Controls.Add(btnCalendar)

在代码隐藏中构建按钮控件时,我有btnCalendar.OnClientClick = btnCalendar.Visible = True

当我运行应用程序并单击btnCalendar时,我收到一条错误消息 JavaScript运行时错误:'True'未定义

如何使用代码隐藏中的btnCalendar.OnClientClick(或任何其他替代方法)显示DatePicker控件?

2 个答案:

答案 0 :(得分:2)

如果您对替代方案持开放态度(从您的帖子中指出,则表示如此),您可以尝试这样做:

Select Case iIndex
  Case 1
     Dim cv As New CompareValidator
     txt = New TextBox
     txt.ID = "txt" & UserName & grdRowID.Name
     txt.cssclass="DateValue"
     cv.ControlToValidate = txt.ID
     c.Controls.Add(cv)
     c.Controls.Add(txt)

然后在您的aspx页面上,按照JQueryUI page上的示例:

  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.1/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css">
  <script>
  $(function() {
    $( "#datepicker" ).datepicker();
  });
  </script>

答案 1 :(得分:0)

代码背后的代码应该是:

Sub btnCalendar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCalendar.Click

 btnCalendar.Visible = True

end sub

或者您可以在asp页面中尝试:

 <%@ page language="VB"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">
      Sub btnCalendar_Click(ByVal sender As Object, ByVal e As System.EventArgs)
         btnCalendar.Visible = True
      End Sub
    </script>
    <html>
    <head>

</head>
<body>
  <form id="form1" runat="server">
      <asp:button id="btnCalendar" runat="server" onclick="btnCalendar_Click" />
    </form>
</body>
</html>
相关问题