2

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

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

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

您可以使用FindControlGridView 的 FooterRow 中的方法使日历可见 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方法适用于将日历控件中的选定日期获取到文本框控件中,但我仍然想让日历在用户按下图像按钮时出现和消失。

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

4

1 回答 1

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();    
 }

希望能帮助到你!

于 2013-10-24T04:35:09.190 回答