读书人

急在点击日期控件后不能展示在datagri

发布时间: 2011-12-23 23:32:01 作者: rapoo

急!!!在点击日期控件后不能显示在datagrid的textbox中?
点击日期控件后不能显示在datagrid的textbox中,但是如果不是datagrid中的textbox就可以.
代码如下:
.aspx
<script type= "text/javascript " language= "JavaScript ">
var popup0=0;
//打开时间选择窗口
function popupCalendar(url) {
var windowprops = "directorys=no,toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no,width=190,height=140 " + ",left= " + window.event.x + ",top= " + window.event.y;
popup0 = window.open(url, "x ",windowprops);
} </script>

<asp:datagrid id= "DataGridTeacher " ShowHeader = "false " OnItemDataBound= "DataGridTeacher_ItemDataBound " runat= "server " >
<ItemStyle CssClass= "dgItem "> </ItemStyle>
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBox id= "chkRights " runat= "server "> </asp:CheckBox>
</ItemTemplate>
<ItemStyle Width= "5% " />
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:Label ID= "lblStudent " runat= "server " Text= ' <%# DataBinder.Eval(Container.DataItem, "XM ") %> '> </asp:Label>
</ItemTemplate>
<ItemStyle Width= "10% " />
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:TextBox ID= "txtValuateDate " CssClass= "textbox " runat= "server "> </asp:TextBox>
</ItemTemplate>
<ItemStyle Width= "10% " />
</asp:TemplateColumn>
......
后台.cs
protected void DataGridTeacher_ItemDataBound(object sender, DataGridItemEventArgs e)
{
ListItemType itemType = e.Item.ItemType;
if (itemType == ListItemType.Item || itemType == ListItemType.AlternatingItem)
{
TextBox tb = (TextBox)(e.Item.Cells[2].Controls[1]);

e.Item.Cells[2].Attributes.Add( "style ", "WIDTH: 10%; CURSOR: hand ");
e.Item.Cells[2].Attributes.Add( "onclick ", "popupCalendar( '../../Common/Calendar.asp?form=form1&field=tb '); ");
}
}
估计问题可能出在 field=tb 上,可是又不知如何做

[解决办法]
一般的日期控件都可以把要显示日期的控件ID或对象当参数传进去
------解决方案--------------------


要findcontrol把DataGrid的textbox找到才能赋值
[解决办法]
e.Item.Cells[2].Attributes.Add( "onclick ", "popupCalendar( '../../Common/Calendar.asp?form=form1&field= " + tb.ClientID + " '); ");
[解决办法]
你可以在日历显示页面中给日期确定按钮加一个onclick事件,javascript或者用属性加都可以
里面写
this.opener.document.getElementById(你textbox的ID).value=日期值
这里注意,如果是javascript加的,textbox的ID不仅仅是你命名的ID,还会加上外部容器(datagrid)的ID,可从源文件中查找到,如果是加属性加的,需要指定textbox的ClienID

读书人网 >asp.net

热点推荐