2013-10-23 41 views
2

我可以访问Gridview页脚模板内的日历控件。 但是在EditItem模板中做同样的事情并不那么容易gridview edititem模板内的日历控件

任何人都可以建议如何做到这一点?

我使用的EditItem模板3个控制:CalendarImageButtonTextBox 以及页脚模板。

可以使用FindControl方法的GridView的FooterRow使日历中显示真/假

protected void MyDateInsButton_Click(object sender, EventArgs e) 
{ 
    if (GridView1.FooterRow.FindControl("MyDateInsCalendar").Visible == false) 
    { 
     GridView1.FooterRow.FindControl("MyDateInsCalendar").Visible = true; 
    } 
    else 
    { 
     GridView1.FooterRow.FindControl("MyDateInsCalendar").Visible = false; 
    } 
} 

,并获得选择的日期页脚TextBox

protected void MyDateInsCalendar_SelectionChanged(object sender, EventArgs e) 
{   
    Calendar MyCal = (Calendar)sender; 

    ((TextBox)GridView1.FooterRow.FindControl("txtinsMyDate")).Text = MyCal.SelectedDate.ToString("d"); 
    GridView1.FooterRow.FindControl("MyDateInsCalendar").Visible = false;  
} 

里面你如何访问EditItem模板中的日历控件使其可见True和False?

protected void MyUpdButton_Click(object sender, EventArgs e) 
{ 

} 

GridView1_RowUpdating方法将用于获取从日历控件插入文本框控件中选定日期的工作,但我还是想使日历显示,当用户按下图像按钮消失。

任何帮助表示赞赏。 谢谢。

回答

2

你快到了。这样做:

protected void MyUpdButton_Click(object sender, EventArgs e) 
{ 
    var MyDateInsCalendar = GridView1.Rows[GridView1.EditIndex].FindControl("MyDateInsCalendar") as Calendar; 
    MyDateInsCalendar.Visible = false; 
} 

而且在GridView1_RowEditing,设置EditIndex,重新绑定数据:

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 
{ 
     GridView1.EditIndex = e.NewEditIndex; 
     GridView1.DataSource = MyDataSource; //Set it to your datasource 
     GridView1.DataBind();  
} 

希望它能帮助!

+0

它工作。谢谢。 – user2912964

+0

我有一个关注问题。你如何让VisibleDate属性起作用? – user2912964

+0

下面是MSDN [Calendar.VisibleDate属性](http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.calendar.visibledate.aspx)中的一个很好的示例。 – afzalulh