Я просто хочу определить этот вид сетки в режиме редактирования строк, и я просто хочу привязать выпадающий список в данный момент. я нашел много статьи и я сделать этот код:Как определить вид сетки в режиме редактирования при привязке данных строки
protected void GV_ViewCustomers_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow && (e.Row.RowState & DataControlRowState.Edit) == DataControlRowState.Edit)
{
using (DataClassesDataContext db = new DataClassesDataContext())
{
DropDownList dl = (DropDownList)e.Row.FindControl("DDL_Types1");
dl.DataSource = db.PartyTypes.Select(t => t).ToList();
dl.DataBind();
dl.SelectedValue = DataBinder.Eval(e.Row.DataItem, "type_id").ToString();
DropDownList dl1 = (DropDownList)e.Row.FindControl("DDL_CountryNames1");
dl1.DataSource = db.Countries.Select(c => c).ToList();
if (!string.IsNullOrEmpty(DataBinder.Eval(e.Row.DataItem, "country_id").ToString()))
{
dl1.SelectedValue = DataBinder.Eval(e.Row.DataItem, "country_id").ToString();
DropDownList dl2 = (DropDownList)e.Row.FindControl("DDL_StateNames1");
dl2.DataSource = db.States.Where(s => s.country_id.Equals(int.Parse(DataBinder.Eval(e.Row.DataItem, "country_id").ToString()))).Select(s => s).ToList();
dl2.DataBind();
}
DataRowView rowView1 = (DataRowView)e.Row.DataItem;
if (rowView1["UserOFC"] != null)
{
(e.Row.FindControl("chk_UserOFC1") as CheckBox).Checked = Convert.ToBoolean(e.Row.DataItem.Equals("UserOFC").ToString());
}
if (rowView1["UserVAT"] != null)
{
(e.Row.FindControl("chk_UserVAT1") as CheckBox).Checked = Convert.ToBoolean(e.Row.DataItem.Equals("UserVAT").ToString());
}
if (rowView1["UserINV"] != null)
{
(e.Row.FindControl("chk_UserINV1") as CheckBox).Checked = Convert.ToBoolean(e.Row.DataItem.Equals("UserINV").ToString());
}
if (rowView1["UserNone"] != null)
{
(e.Row.FindControl("chk_UserNone1") as CheckBox).Checked = Convert.ToBoolean(e.Row.DataItem.Equals("UserNone").ToString());
}
}
UpdatePanel10.Update();
}
if (e.Row.RowType == DataControlRowType.Footer)
{
using (DataClassesDataContext db = new DataClassesDataContext())
{
DropDownList ddl1 = (DropDownList)e.Row.FindControl("DDL_Types");
ddl1.DataSource = db.PartyTypes.Select(p => p).ToList();
ddl1.DataBind();
DropDownList ddl2 = (DropDownList)e.Row.FindControl("DDL_CountryNames");
ddl2.DataSource = db.Countries.Select(c => c).ToList();
ddl2.DataBind();
}
}
}
как всегда сноска выпадающий список успешно связывает вверх, но в шаблоне элемента редактирования нет.
пожалуйста, помогите мне ...
protected void GV_ViewCustomers_RowEditing(object sender, GridViewEditEventArgs e)
{
GV_ViewCustomers.EditIndex = e.NewEditIndex;
this.FillGrid((String)Session["StartAlpha"] ?? null, (int)Session["GroupByENTYPE"] , (String)Session["ColumnName"] ?? null, (String)Session["SearchText"] ?? null);
UpdatePanel10.Update();
MPE.Show();
}
почему я должен проверить на стороне колонтитула я просто только работать с DataControlRowState.Edit. – Shal
@Shal: Я не понимаю, вы используете 'DataControlRowState.Edit' только для обычных строк, но не для строки нижнего колонтитула, что означает, что код всегда выполняется, даже если вы не находитесь в режиме редактирования. –
Я реализую его, но все тот же вопрос ... – Shal