0

私はこれにユーザーコントロールを使用して、カウントに応じて行に応じてテーブルに配置するWebアプリケーションを持っています。ユーザーコントロールには4つのテキストボックスがあり、各ユーザーコントロールをテーブル行内に配置し、ページの読み込み時にこの行に一意のIDを指定しました。問題は、フォームを送信すると、行IDでデータを取得しようとしていますが、コントロールがnullを返します。行を取得していますが、その行内でコントロールを見つけることができません。私が摩耗したことがある場合は、私のコードを調べてください。

MasterPage ctl00 = FindControl("ctl00") as MasterPage;
ContentPlaceHolder cplacehld = ctl00.FindControl("ContentPlaceHolder1") as ContentPlaceHolder;
foreach (SeatBookDetails sff in SBD)
{
    TableRow trow = (TableRow)cplacehld.FindControl("Row_" + sff.SeatRowId.ToString() + "_" + sff.SeatRowno.ToString());
    if (trow != null)
    {
        string ss = trow.ID;

        TextBox txtcust = (TextBox)trow.FindControl("txtcustname");

        if (txtcust != null)
        {

      }
        TextBox txtprofession = (TextBox)trow.FindControl("txtprofession");
        if (txtprofession != null)
        {

        }
    }
}

要素を調べたところ、構造が見つかりました。これの画像を添付しています。ここで何ができるでしょうか?このコントロールを取得するにはどうすればよいですか?

Scrrenshot

4

1 に答える 1

0

まず、次のようなアクセサのみを取得するユーザーコントロールクラスにプロパティを提供します。

public string CustomerName { get { return txtCustName.Text; } }

次に、loopを使用してテーブルの行とセルをループできforeachます

次に、以下を使用してユーザーコントロールを見つけます。

if (_control is Usercontrol) { Usercontrol _form = (Usercontrol )_control; string name = _form.CustomerName; }

また、usercontrolコレクションを動的にロードするか、Page_initアクセスPage_Load できるようにしてください。

于 2013-02-05T08:27:52.513 に答える