0

ページに動的コントロールがあります。コードビハインドによってこのページに追加されました。

FileUpload fu = new FileUpload();
fu.ID = "fu";
fu.EnableViewState = true;
list.Add(fu);

Button btnFu = new Button();
btnFu.Text = "Upload";
btnFu.ID = "btnFu";
list.Add(btnFu);

postBack を使用した後、この fileUpload から値を取得できません。

if (!IsPostBack) {

}
else {
      string str_btn = null;
      if (Request.Form.Keys[Request.Form.Keys.Count - 1] != null)
                    str_btn = Request.Form.Keys[Request.Form.Keys.Count - 1].ToString();
      if (!string.IsNullOrEmpty(str_btn)) 
                    handleClick(str_btn);

}

誰でもこれを解決する解決策を持っていますか?

4

3 に答える 3

0

ポストバックで動的に作成されたコントロールを再作成する必要があると思います。

public class YourPage : System.Web.UI.Page
{
      protected bool AreControlsCreated {
      {
          get{return (bool)ViewState["AreControlsCreated"];}
          set{ViewState["AreControlsCreated"] = value;}
      }

      private void Page_Load(object sender, System.EventArgs e)
      {
          if(!IsPostBack)
          {
              AreControlsCreated = false;
          }
          else if(AreControlsCreated)
          {
              CreateYourControls();
          }
      }

      private void CreateYourControls()
      {
        ...
        FileUpload fu = new FileUpload();
        fu.ID = "fu";
        fu.EnableViewState = true;
        list.Add(fu);

        Button btnFu = new Button();
        btnFu.Text = "Upload";
        btnFu.ID = "btnFu";
        list.Add(btnFu);

        AreControlsCreated = true;
      }

      protected void YourButton_Click(object sender, EventArgs e)
      {
          createYourControls();
      }
}
于 2013-03-15T04:41:29.800 に答える
0

コントロールを追加したリストはコンテンツ コンテナーであると思われるため、まずその参照を取得してからFindControl("btnFu")メソッドを呼び出す必要があります。

// var list = yourListControl
Button btnFu = list.FindControl("btnFu") as Button;
if(btnFu != null)
{
    // Operate on the button
}
于 2013-03-15T04:39:04.963 に答える
0

Page.FindControl("fu") を使用してコントロールを検索してみます。この質問への回答には、マスターページとユーザー コントロールを使用するときにコントロールを探すなどの問題をカバーする興味深いオプションがいくつかあります。

ASP.Net FindControl が機能しない - どうして?

于 2013-03-15T03:21:01.667 に答える