Управление календарем внутри шаблона редактирования gridview
Я могу получить доступ к элементу управления календаря в шаблоне нижнего колонтитула Gridview. Но сделать это не так просто в шаблоне EditItem.
Кто-нибудь может подсказать, как это сделать?
Я использую 3 элемента управления в шаблоне EditItem: Calendar
, ImageButton
, TextBox
а также шаблон нижнего колонтитула.
Вы можете использовать FindControl
метод в FooterRow GridView, чтобы сделать календарь видимым 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 ответ
Вы почти там. Делай так:
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();
}
Надеюсь, поможет!