Popup需要返回内容控件中的文本框

时间:2010-09-10 19:16:12

标签: javascript asp.net calendar popup master-pages

我有一个位于内容控件中的链接。此链接调用一个javascript函数,该函数打开一个包含日历的弹出窗口,并使用clientid从文本框控件的服务器传递转换后的id。我需要能够点击日期并关闭弹出窗口并将日期插入我传入函数的id的文本框中,该函数再次位于内容控件内。

这是内容控件中的链接:

<a title="Pick Date from Calendar" onclick="calendarPicker('form1.<%= txtstart.ClientId %>');" href="javascript:void(0);">

这是主页内的javascript:

<script type="text/javascript">
function calendarPicker(strField) {
    var strField = window.open('DatePicker.aspx?field=' + strField, 'calendarPopup', 'width=250,height=190,resizable=yes');
}

日历是其自己页面中的日历控件,这是代码隐藏:

Private Sub Calendar1_DayRender(ByVal sender As Object, ByVal e As DayRenderEventArgs) Handles Calendar1.DayRender
        Dim link As New System.Web.UI.HtmlControls.HtmlGenericControl
Dim strLink As String
e.Cell.Controls.Clear()
link.TagName = "a"
link.InnerText = e.Day.DayNumberText
strLink = "JavaScript:window.opener.document." & Request.QueryString("Field") & ".value = '" & e.Day.Date & "'; window.close();"
link.Attributes.Add("href", strLink)
If (e.Day.IsSelected) Then
  link.Attributes.Add("style", Calendar1.SelectedDayStyle.ToString())
End If
e.Cell.Controls.Add(link)
End Sub

我还应该提到我得到的错误是:

window.opener.document.form1未定义

1 个答案:

答案 0 :(得分:0)

不要使用document.form1。使用document.getElementById(strField)。您还需要修改对calendarPicker的通话。 calendarPicker('<%= txtstart.ClientId %>');

不要将javascript放在href属性中。使用link.Attributes.Add("onclick", strLink)