0

私はC#に関しては初心者なので、我慢してください:)。

asp.net でフォームを作成し、RequiredFieldValidator で検証しようとしています。私の問題は、入力フィールドが for ループで生成されることです。

私の質問は、これらの入力フィールドを検証するにはどうすればよいかということです.Javaのように「オブジェクトを渡す」方法はありますか?

編集:フィールドが生成されるテーブル:

      <asp:Table id="newPatienttbl" 
      GridLines="Both" 
      HorizontalAlign="Center" 
      Font-Size="8pt" 
      CellPadding="5"
      CellSpacing="0"
      Runat="server"/>

入力フィールドを生成する方法。

        TableRow row = null;
        TableCell cell = null;
        TextBox tb = null;
        foreach (DataColumn column in patientData.Columns)
        {
            row = new TableRow();
            cell = new TableCell();

            if (column.ColumnName.Equals("ZVID"))
                cell.Text = "Zorgverzekeraar";
            else
                cell.Text = column.ColumnName;

            row.Cells.Add(cell);

            cell = new TableCell();

            if (!column.ColumnName.Equals("ZVID"))
            {
                tb = new TextBox();
                cell.Controls.Add(tb);
            }
            else
            {
                DropDownList dd = new DropDownList();
                dd.ID = column.ColumnName;
                dd.DataSource = zorgData;
                dd.DataValueField = "ZVID";
                dd.DataTextField = "Naam";


                dd.DataBind();
                cell.Controls.Add(dd);
            }

            cell.ID = column.ColumnName+"Cell";
            row.Cells.Add(cell);

            newPatienttbl.Rows.Add(row);
        }
4

1 に答える 1

0

次のようなコードを変更できます。

        string addedControlId;
        if (!column.ColumnName.Equals("ZVID"))
        {
            tb = new TextBox();
            tb.Id= column.ColumnName;
            cell.Controls.Add(tb);
            addedControlId = tb.Id;
        }
        else
        {
            DropDownList dd = new DropDownList();
            dd.ID = column.ColumnName;
            dd.DataSource = zorgData;
            dd.DataValueField = "ZVID";
            dd.DataTextField = "Naam";


            dd.DataBind();
            cell.Controls.Add(dd);
            addedControlId = dd.Id;
        }
        RequiredFieldValidator val = new RequiredFieldValidator{

            ControlToValidate = addedControlId,
            ErrorMessage = "Shame on you, you did not fill this value"

        }
        cell.Controls.Add(val);

DataTableただし、あなたのコードは、またはのようなデータバインドされたコントロールを移動する必要があると私に思わせますDataGrid。あなたはあなたのアイテムをテンプレート化することの使用に利益をもたらすでしょう。

于 2012-10-11T09:51:57.503 に答える