【问题标题】:how to bind drop down list at edit item template Edit mode occurs in grid view如何在编辑项模板上绑定下拉列表编辑模式发生在网格视图中
【发布时间】:2014-05-12 09:39:59
【问题描述】:

我只想在行编辑模式下的网格视图时动态绑定两个下拉列表。这里我声明了一个代码块,它动态获取该行状态并绑定这两个下拉列表。

这里是代码:

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

这是在行编辑模式下绑定下拉列表的正确方法吗?

请帮帮我....

【问题讨论】:

  • 您对此有任何错误或问题吗?
  • 不,这不会绑定此下拉列表。我怎么怀疑这不是在行编辑模式下绑定下拉列表和复选框的正确方法。
  • 我认为您在行编辑事件中,所以这也很好。您可以通过识别网格的编辑行在 RowDataBinding 事件中执行此绑定。
  • 再次查看问题,我想我错过了上界线。
  • 是的。那个事件也是正确的。还有另一个事件叫做 RowDataBining。您也可以在该事件中进行绑定。你的努力没问题。 :)

标签: c# asp.net-4.0


【解决方案1】:

没关系。不过还有其他办法。

【讨论】:

  • 正如我在上面的评论中提到的。您可以在 RowDataBinding 事件中绑定数据。并且如果你使用jquery或者java脚本来绑定数据,你可以使用javascript或者jquery的方法来绑定数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-10
相关资源
最近更新 更多