0
行編集モードでグリッドビューを検出したいだけで、この時点でドロップダウンリストをバインドしたいだけです。私は多くの記事を見つけたと私は、このコード行データバインドで編集モードでグリッドビューを検出
私はこのエラーに
データバインディング持たせる:「AllProjects_Resultは」 名「プロジェクト」でプロパティが含まれていませんが。
protected void GVAllProjects_RowDataBound(object sender, GridViewRowEventArgs e)
{
DropDownList ddlDistrictName = null;
DropDownList ddlPurposeName = null;
DropDownList ddlTypes = null;
if (e.Row.RowType == DataControlRowType.Footer && e.Row.RowState == DataControlRowState.Edit)
{
ddlDistrictName = e.Row.FindControl("ddlDistrictName") as DropDownList;
ddlPurposeName = e.Row.FindControl("ddlPurposeName") as DropDownList;
ddlTypes = e.Row.FindControl("ddlTypes") as DropDownList;
}
if (e.Row.RowType == DataControlRowType.DataRow)
{
ddlDistrictName = e.Row.FindControl("ddlDistrictName") as DropDownList;
ddlPurposeName = e.Row.FindControl("ddlPurposeName") as DropDownList;
ddlTypes = e.Row.FindControl("ddlTypes") as DropDownList;
}
if (ddlDistrictName != null)
{
using (AlamaarRealEstateEntities context = new AlamaarRealEstateEntities())
{
ddlDistrictName.DataSource = context.Districts.ToList();
ddlDistrictName.DataTextField = "DistrictName";
ddlDistrictName.DataValueField = "ID";
ddlDistrictName.DataBind();
ddlPurposeName.Items.Insert(0, new ListItem(""));
ddlPurposeName.DataSource = context.Purposes.ToList();
ddlPurposeName.DataTextField = "PurposeName";
ddlPurposeName.DataValueField = "ID";
ddlPurposeName.DataBind();
ddlTypes.Items.Insert(0, new ListItem(""));
ddlTypes.DataSource = context.Types.ToList();
ddlTypes.DataTextField = "TypeName";
ddlTypes.DataValueField = "ID";
ddlTypes.DataBind();
}
if (e.Row.RowType == DataControlRowType.DataRow && (e.Row.RowState & DataControlRowState.Edit) == DataControlRowState.Edit)
{
ddlDistrictName.SelectedValue = (DataBinder.Eval(e.Row.DataItem, "DistrictID")).ToString();
ddlPurposeName.SelectedValue = (DataBinder.Eval(e.Row.DataItem, "PurposeID")).ToString();
ddlTypes.SelectedValue = (DataBinder.Eval(e.Row.DataItem, "TypeID")).ToString();
}
}
}
ここでこれらの行でエラー:
if (e.Row.RowType == DataControlRowType.DataRow && (e.Row.RowState & DataControlRowState.Edit) == DataControlRowState.Edit)
{
ddlDistrictName.SelectedValue = (DataBinder.Eval(e.Row.DataItem, "DistrictID")).ToString();
ddlPurposeName.SelectedValue = (DataBinder.Eval(e.Row.DataItem, "PurposeID")).ToString();
ddlTypes.SelectedValue = (DataBinder.Eval(e.Row.DataItem, "TypeID")).ToString();
}
私はこのコードを試しましたが、それでも同じエラーがあります – hashim
あなたが提供したスニペットに問題はありません。 'AllProjects_Result'や' GVAllProjects_RowDataBound'の 'Projects'への参照はありません。この問題は、GridViewの 'EditItemTemplate'にある可能性が高いです。存在しない 'Eval(" Projects ")のようなもの。 – VDWWD
この問題を解決するにはどうすればよいですか? – hashim