gridview edititemtemplate中的日历控件

时间:2013-10-23 20:11:09

标签: c# asp.net gridview calendar edititemtemplate

我可以访问Gridview页脚模板中的日历控件。 但是在EditItem Template

中做同样的事情并不容易

有人可以建议怎么做吗?

我在EditItem模板中使用了3个控件:CalendarImageButtonTextBox 以及页脚模板。

您可以使用GridView的FooterRow中的FindControl方法使日历显示为True / False

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方法可用于将日历控件中的选定日期转换为文本框控件,但我仍希望在用户按下图像按钮时使日历显示和消失。

感谢任何帮助。 感谢。

1 个答案:

答案 0 :(得分: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();    
 }

希望它有所帮助!