0
私は編集可能なグリッドビューを持っています。「x」と言う行の編集をクリックすると編集モードで開きますが、他の行をクリックすると "y"、 "x"編集をキャンセルします。しかし、 "y"をクリックした後のコードでは、両方の行が編集モードのままです。グリッドビュー編集問題
protected void gvViewAdmins_RowEditing(object sender, GridViewEditEventArgs e)
{
gvViewAdmins.EditIndex = e.NewEditIndex;
Label lblEmailId = gvViewAdmins.Rows[e.NewEditIndex].FindControl("gvlblEmail") as Label;
lblEmailId.Visible = false;
ViewState["currentEmailId"] = lblEmailId.Text;
TextBox textboxEmailId = gvViewAdmins.Rows[e.NewEditIndex].FindControl("gvtbEmailId") as TextBox;
textboxEmailId.Text = ViewState["currentEmailId"].ToString();
textboxEmailId.Visible = true;
Label lblRole = gvViewAdmins.Rows[e.NewEditIndex].FindControl("gvlblRole") as Label;
lblRole.Visible = false;
ViewState["currentRole"] = lblRole.Text;
DropDownList dropdownRoles = gvViewAdmins.Rows[e.NewEditIndex].FindControl("gvddlRoles") as DropDownList;
this.PopulateRole(dropdownRoles);
dropdownRoles.Visible = true;
this.SelectRoleDropDownValue(dropdownRoles);
LinkButton lbtnUpdate = gvViewAdmins.Rows[e.NewEditIndex].FindControl("lbtnUpdate") as LinkButton;
LinkButton lbtnCancel = gvViewAdmins.Rows[e.NewEditIndex].FindControl("lbtnCancel") as LinkButton;
LinkButton lbtnEdit = gvViewAdmins.Rows[e.NewEditIndex].FindControl("lbtnEdit") as LinkButton;
lbtnUpdate.Visible = true;
lbtnCancel.Visible = true;
lbtnEdit.Visible = false;
}
私のコードで何が間違っていますか?
は今、私はあなたのサンプルごとに私のコードを変更し
良い方法は
マークアップ、などのItemTemplateにして、[編集]項目テンプレートを別々に定義し、あります。ただし、編集モードでのみ表示されるドロップダウンリストが1つあります。私がに入れておくと、findControlのコードはコードの背後では機能しません。 DropDownListとしてドロップダウンリストdropdownRoles = gvViewAdmins.Rows [e.NewEditIndex] .FindControl( "gvddlRoles"); this.PopulateRole(dropdownRoles); dropdownRoles.Visible = true; this.SelectRoleDropDownValue(dropdownRoles); 'ドロップダウンは、デバッグ中にnull値を表示します。 –
user1181942
私はそれを持っています...私はPreRenderイベントではなく、行Edititngでfindcontrolを持っている必要があります...あなたの助けをありがとう:) – user1181942
あなたが行databoundイベントでも、コントロールを見つけることができますif(e.Row.RowIndex == gvViewAdmins.EditIndex){DropDownList dropdownRoles = gvViewAdmins.Rows [e.NewEditIndex] .FindControl( "gvddlRoles")as DropDownList}は、現在バインディングされている行が編集行であることをチェックします。また、別のこととして、 "dropdownRoles.Visible = true;"と書く必要はありません。それはとにかくそれを表示します。 –