asp.net日历控制问题

时间:2011-03-29 18:22:37

标签: asp.net

我在asp.net 2.0中使用日历控件 因为它是使用母版页..我打开一个窗口形式的内容页面.. 在window.close上它给了我null对象,因为它没有获取表单名称 感谢您的帮助

内容页面上的代码:

<a onclick="openwindow();" ahref="#">
<img src="Images/calendar.gif" style="width: 20px; height: 20px" border=0/></a>
<input ID="Text1" runat="server" readonly="readOnly" type="text" />

function openwindow() {  
    window.open('/Calender.aspx', 'calendar_window','width=154,height=188');
}

来自内容页面的已打开窗口的代码

protected void Calender1_SelectionChanged(object sender, EventArgs e)
    {
        string strjscript = "<script language='javascript'>";
        strjscript += "window.opener." + HttpContext.Current.Request.QueryString["formname"];
        strjscript += ".value = '" + Calender1.SelectedDate.ToString("yyyy-MM-dd") + "'; window.close();";
        strjscript += "</script" + ">";  
        Literal1.Text = strjscript; 
    }

    protected void Calendar1_dayrender(object sender, DayRenderEventArgs e)
    {             
          if(e.Day.Date==DateTime.Now)
        {
            e.Cell.BackColor = System.Drawing.Color.LightGray;
        }

    }

1 个答案:

答案 0 :(得分:1)

看起来你没有关注this tutorial但不完全正在做什么。

注意事项:

1:确保您命名表单

2:通过查询字符串传递文本框引用,即Calender.aspx?formname = frmCalendar.txtDate

3:calender.aspx的路径是正确的。

您已接近解决方案,但可能需要与我们分享您的主页代码。

修改1 好的,我现在看到你在说什么。将此脚本块添加到您的内容页面:

<script type="text/javascript">
    function openwindow() {
        var txtid = '<%=txtDate.ClientID %>';
        var frmid = '<%=Page.Form.ClientID %>';
        var qs = "formname=" + frmid + "." + txtid;
            window.open('/Calendar.aspx?' + qs,'calendar_window', 'width=154,height=188');
        }
</script>

虽然如果可能的话尝试使用jquery datepicker,如果你想走那条路线,你可以发布你的代码并发布。