0
動的にテーブルを作成します。テーブルには、関連付けられたIDを持つチェックボックスが含まれており、ユーザーに表示されます。私は表示部に問題はありません。 ユーザーがいくつかの指定されたチェックボックスをチェックして、送信ボタンを押した後、私は彼の選択肢、チェックされているチェックボックスとその関連IDを取得したいですが、ポストバック中に私のテーブルには、ユーザーの選択どんな援助も深く感謝しています。ASP .NETのテーブルデータの永続化
乾杯 IpがDohの
<asp:ScriptManager ID="ScriptManager1" EnablePartialRendering="true" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="dummyLabel" runat="server" Text="Label"></asp:Label>
<asp:Button ID="submitButton" onclick="async_Click" runat="server" Text="Submit" />
<asp:Table ID="usrTable" EnableViewState="true" runat="server">
<asp:TableHeaderRow>
<asp:TableHeaderCell Text="Id"/>
<asp:TableHeaderCell Text="Customer Name"/>
</asp:TableHeaderRow>
</asp:Table>
</ContentTemplate>
</asp:UpdatePanel>
を次のように私のaspxページは、私がコードファイルに次のように持っている
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
CreateTable();
}
if (IsPostBack)
{
List<int> choices = GetUserChoices();
//Do Something with user choices
}
}
protected List<int> GetUserChoices()
{
List<int> choices = new List<int>();
foreach (TableRow row in usrTable.Rows)
{
CheckBox cb = row.Controls[0] as CheckBox;
if ((cb != null) && (cb.Checked))
{
choices.Add(int.Parse(cb.Text));
}
}
return choices;
}
void CreateTable()
{
dummyLabel.Text = DateTime.Now.ToString();
for (int i = 0; i < 3; i++)
{
TableCell cell1 = new TableCell();
CheckBox cb = new CheckBox();
cb.Text = i.ToString();
cb.AutoPostBack = true;
cb.EnableViewState = true;
cell1.Controls.Add(cb);
TableCell cell2 = new TableCell();
cell2.Text = String.Format("Clm : {0} - Row : {1}", 2, i);
TableRow row = new TableRow();
row.Cells.Add(cell1);
row.Cells.Add(cell2);
usrTable.Rows.Add(row);
}
}
ラベル値は保持されますが、myテーブルには追加した行はありません。
テーブルを生成するために使用したコードをお知らせください。 runat = "server"とマークされていないコントロールはviewstateを保持しないので、ポストバックには存在しません。値は、Request.FormまたはRequest.QueryStringプロパティを使用して使用可能になります。 –
PostBackでcreateTableメソッドが呼び出されていません。 – DotNetUser
私は基本的に、ユーザがチェックしたダイナミックテーブルのチェックボックスを知りたいと思っています。他の投稿を見てみると、テーブル全体を元の状態に戻す方法はないようですが、代わりにそれを再作成しても構いませんが、ユーザーの選択を得る方法を探したいと思います –