我在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;
}
}
答案 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,如果你想走那条路线,你可以发布你的代码并发布。