ページに空白のテキストボックスのテーブルがあります。ユーザーがテキストボックスのいずれかに何かを入力した場合、その情報をオブジェクトのリストに保存します。これらはいずれも必須ではありません。いずれかの行に何かを入力した場合は、それをキャプチャします。オブジェクトは次のとおりです。
public class Siblings
{
public string SiblingName { get; set; }
public string SiblingSchool { get; set; }
public string SiblingID { get; set; }
}
表は次のとおりです。
<asp:Content ID="SiblingContent" ContentPlaceHolderID="ContentPlaceHolderSibling" runat="server" >
<asp:Panel ID="SiblingInformation" runat="server" ViewStateMode="Inherit" Visible="False" >
<table id="SiblingTable" runat="server" >
<tr>
<td class="header">
<asp:Label ID="SiblingNameLabel" runat="server" Text="Sibling Full Name" ></asp:Label>
</td>
<td class="header">
<asp:Label ID="SiblingSchoolLabel" runat="server" Text="Sibling School"></asp:Label>
</td>
<td class="header">
<asp:Label ID="SiblingIDLabel" runat="server" Text="Sibling ID"></asp:Label>
</td>
</tr>
<tr>
<td class="field">
<asp:TextBox ID="SiblingName1" runat="server" ></asp:TextBox>
</td>
<td class="field">
<asp:TextBox ID="SiblingSchool1" runat="server" ></asp:TextBox>
</td>
<td class="field">
<asp:TextBox ID="SiblingID1" runat="server" ></asp:TextBox>
</td>
</tr>
<tr>
<td class="field">
<asp:TextBox ID="SiblingName2" runat="server" ></asp:TextBox>
</td>
<td class="field">
<asp:TextBox ID="SiblingSchool2" runat="server" ></asp:TextBox>
</td>
<td class="field">
<asp:TextBox ID="SiblingID2" runat="server" ></asp:TextBox>
</td>
</tr>
<tr>
<td class="field">
<asp:TextBox ID="SiblingName3" runat="server" ></asp:TextBox>
</td>
<td class="field">
<asp:TextBox ID="SiblingSchool3" runat="server" ></asp:TextBox>
</td>
<td class="field">
<asp:TextBox ID="SiblingID3" runat="server" ></asp:TextBox>
</td>
</tr>
</table>
</asp:Panel>
これが、ユーザーデータをオブジェクトリストに取り込むためのこれまでの試みです(何が起こっているのかを理解するために、一度に1ステップずつ実行する必要がありました。必要に応じて、統合してください)。
ContentPlaceHolder mpContentPlaceHolder;
Panel siblingPanel;
Table siblingTable;
TextBox tbox;
int i = 1;
mpContentPlaceHolder =
(ContentPlaceHolder)Master.FindControl("ContentPlaceHolderSibling") as ContentPlaceHolder;
if (mpContentPlaceHolder != null)
{
siblingPanel =
(Panel)mpContentPlaceHolder.FindControl("SiblingInformation") as Panel;
if (siblingPanel != null)
{
siblingTable =
(Table)siblingPanel.FindControl("SiblingTable");
if (siblingTable != null)
{
foreach (TableRow tr in siblingTable.Rows)
{
foreach (TableCell tc in tr.Cells)
{
foreach (Control c in tc.Controls)
{
if (c.GetType() == typeof(TextBox))
{
tbox = (TextBox)c;
if (!(String.IsNullOrWhiteSpace(tbox.Text)))
{
AllSiblings[i].SiblingName = tbox.Text;
}
}
}
}
}
}
}
}
これが完了した後に必要なのは、兄弟オブジェクトごとのセッションです。これにより、後で別のContentPlaceholderからそれらにアクセスできます。これが名前、学校、またはIDであるかどうかを判断するのに役立つテキストボックスIDを指定しようとしましたが、それをどのように使用するかわかりません。ありがとうございました -