ASP
<script type="text/javascript">
function ToggleVisiblity(ShowHideButton, Calendar)
{
var calendar = self.document.getElementById(Calendar);
if (calendar.style.display == 'none')
calendar.style.display = 'block';
else
calendar.style.display = 'none';
}
</script>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="794px" onrowdatabound="GridView1_RowDataBound" >
<Columns>
<asp:TemplateField HeaderText="进货日期">
<EditItemTemplate>
</EditItemTemplate>
<ItemTemplate>
<asp:TextBox ID="CalendarTB" runat="server" CssClass="ShowHideButton" Text="点击选择日期"></asp:TextBox>
<asp:Calendar ID="Calendar1" runat="server" OnSelectionChanged="Calendar1_SelectionChanged" style="display:none" ></asp:Calendar>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EmptyDataTemplate>
没有相关数据!
</EmptyDataTemplate>
</asp:GridView>
ASP.C#
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
TextBox btnShowHide = (TextBox)e.Row.FindControl("CalendarTB");
Calendar OrderCalendar = (Calendar)e.Row.FindControl("Calendar1");
string ShowHideScript = "ToggleVisiblity(this,'" + OrderCalendar.ClientID + "');return false";
btnShowHide.Attributes.Add("onfocus", ShowHideScript);
}
}
protected void Calendar1_SelectionChanged(object sender,EventArgs e)
{
Calendar OrderCalendar = (Calendar)sender;
TextBox txtOrderDate = (TextBox)(OrderCalendar.Parent.FindControl("CalendarTB"));
txtOrderDate.Text = OrderCalendar.SelectedDate.ToShortDateString();
}
以上是我经过修改的
附上原文http://www.vbknowledgebase.com/?Id=127&Desc=Asp.net-GridView-Calendar