edititemtemplate of formviewからドロップダウンリストにアクセスする方法

StackOverflow https://stackoverflow.com/questions/2796624

質問

テーブルを使用して配置されたさまざまなコントロールを含むASPXページにフォームビューがあります。編集モード内の役割に応じて、有効または無効にする必要があるDDL「cboclients」があります。

ここでの問題は、FindControl()メソッドを使用してそのコントロールを取得できないことです。

次のコードを試しました -

     DropDownList ddl = null;
       if (FormView1.Row != null)
        {
            ddl = (DropDownList)FormView1.Row.FindControl("cboClients");
            ddl.Enabled=false;        
}

私でさえ、同じコントロールのDataBoundイベントを使用しました -

protected void cboClients_DataBound(object sender, EventArgs e)
    {
        if (FormView1.CurrentMode == FormViewMode.Edit)
        {
            if ((Session["RoleName"].ToString().Equals("Clients")) || (Session["RoleName"].ToString().Equals("Suppliers")))
            {
                DropDownList ddl = (DropDownList)sender;
                ddl.Enabled = false;
            }
        }
    }

ただし、このDataBoundイベントは1回だけ発生しますが、FormViewモードが変更された場合は1回だけ発生しません。

誰かが私に適切な解決策を提供できますか?

あなたの時間を共有してくれてありがとう。

役に立ちましたか?

解決

モデリングイベントをお試しください。http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.formview.modechanged.aspx

アップデート..

これを試して

DropDownList ddl = FormView1.FindControl("cboClients") as DropDownList;
if (ddl != null) {
  ddl.Enabled=false;        
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top