• Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!

ASP Experts!

Spacecadet

Double Godlike!
Thanks received
16
I'm building a process for creating a dynamic form in ASP VB. I can easily create text boxes, drop down lists, multi select lists etc...
One thing I can't seem to do though is dynamically create a calendar control and make it "pop up" on request.

I've pulled out some code to try and isolate what the code is supposed to achieve.
Hitting the "..." button should make the calendar control visible. Only it doesn't :(

Heres some example code:
Code:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="calendarTest.aspx.vb" Inherits="calendarTest" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:PlaceHolder ID="mycalendarPlaceholder" runat="server"></asp:PlaceHolder>
        <br />
        <asp:Literal ID="Literal1" runat="server"></asp:Literal></div>
    </form>
</body>
</html>

Code:
Partial Class calendarTest
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Dim mycalendarTextbox As New TextBox()
        Dim mycalendarButton As New Button()
        Dim mycalendar As New Calendar

        mycalendar.ID = "calendar1"
        mycalendar.Visible = False

        mycalendarTextbox.ID = "Cal1"
        mycalendarTextbox.Text = CType(System.DateTime.Now, String)

        mycalendarButton.ID = "calendarButton"
        mycalendarButton.Text = "..."
        mycalendarButton.Attributes("OnClick") = "calendarButton_Click()"

        mycalendarPlaceholder.Controls.Add(mycalendarTextbox)
        mycalendarPlaceholder.Controls.Add(mycalendarButton)
        mycalendarPlaceholder.Controls.Add(mycalendar)

    End Sub
    Protected Sub calendarButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)

        Dim mc As Calendar = CType(form1.FindControl("calendar1"), Calendar)

        mc.Visible = True
        '        mycalendarPlaceholder.Controls.Add(mc)
        Literal1.Text = Literal1.Text + "test1"

    End Sub

End Class

TIA!!!
 
It's been quite a while since I played with ASP.NET (!= ASP, btw :wink) but might the
Code:
AutoEventWireup="false"
attribute in the <%@ Page... directive have something to do with it?

Not relevant to your issue, but why couldn't Microsoft have used standard Processing Instructions, which were intended for precisely that purpose?

Oh, I forgot, Microsoft make their own "standards"
:rolleyes:
 
The button click is not raising the calendarButton_Click() event. Adding a static button and calling calendarButton_Click() explicitly does make the calendar visible.

QB.
 
The button click is not raising the calendarButton_Click() event. Adding a static button and calling calendarButton_Click() explicitly does make the calendar visible.

QB.

don't want to use a static button though as there could be an un limited number of calender controls defined for that page.
It is dynamic after all :)
 
Most of the useful stuff can't be done with ASP.NET out of the box, but there's always a way and usually someone has already done it before you :wink

Googled:
http://www.devx.com/vb2themax/Tip/18850

That one did the trick. I thought I had looked at every single google result for pop up calenders, obviously not

I would have prefered divs but i'm happy with a new window popping up for now.

That method was for ASP 1.0, took a bit of fiddling with to get it working in ASP 2 but the methods are still sound.
Interestingly, setting the onclick method for a dynamic button does work for client side scripts, just not server side scripts.
mycalendarButton.Attributes("OnClick") = "calendarButton_Click()"

Thanks for that, much appreciated! :music:
 
Last edited: 09:03

Advertisers

Back
Top