私の Web ページには、入力をそれぞれ年と月として受け取る 2 つのテキスト ボックスがあります。次に、これらの値に応じてデータベース テーブルから、稼働日と呼ばれる列の値が取得されます。その値は次の形式です (111110011111001111100111110011) ここで、1 は営業日を意味し、0 は休日 (土、日、またはその他の休日) を意味します。この取得した値に応じて、30/31 (月の日付に応じて) のチェック ボックスを表示し、休日のチェック ボックスをオンにしてオフのままにする必要があります。1 2 3 4 5 6 7....................................30 のようになり、その下にチェックボックスが表示されます。現在、使用しているコードは 1 の下に 1 つのチェックボックス (最初のヘッダー) のみを表示し、次の日付はリピーターに表示されますが、チェックボックスは次の行に表示されます。問題を教えてもらえますか?
コードビハインド
public class MyCheckBox { public bool IsChecked { get; 設定; } }
public void search(object sender, EventArgs e) { string cnnString = "Server=localhost;Port=3307;Database=leavesystem;Uid=root;Pwd=ashish"; MySqlConnection cnx = new MySqlConnection(cnnString); cnx.Open(); string cmdText = "Select WorkingDays from calender where Year = '" + year.Value + "' and Month = '" + month.Value + "' "; MySqlCommand cmd = new MySqlCommand(cmdText, cnx); if (month.Value == " January || March || May || July || August || October || December ") { string str = Convert.ToString(cmd.ExecuteScalar()); List<MyCheckBox> list = new List<MyCheckBox>(); foreach (char c in str) list.Add(new MyCheckBox { IsChecked = c == '0' }); MyRepeater1.DataSource = list; MyRepeater1.DataBind(); } else if (month.Value == " April || June || September || November ") { string str = Convert.ToString(cmd.ExecuteScalar()); List<MyCheckBox> list = new List<MyCheckBox>(); foreach (char c in str) list.Add(new MyCheckBox { IsChecked = c == '0' }); MyRepeater2.DataSource = list; MyRepeater2.DataBind(); } else if (month.Value == " February ") { string str = Convert.ToString(cmd.ExecuteScalar()); List<MyCheckBox> list = new List<MyCheckBox>(); foreach (char c in str) list.Add(new MyCheckBox { IsChecked = c == '0' }); MyRepeater3.DataSource = list; MyRepeater3.DataBind(); } }
リピーターはこんな感じ
<asp:Repeater ID="MyRepeater" runat="server">
> <HeaderTemplate>
> <table width="100%" class="table" border="1" style="font: 8pt verdana">
> <tr>
> <%
> for (int i = 1; i <= 31; i++)
> {
> Response.Write("<td>" + i + "</td>");
> }
> %>
> </tr>
>
> </HeaderTemplate>
> <ItemTemplate>
> <tr>
> <td>
> <asp:CheckBox ID="CheckBox1" Checked='<%# Eval("IsChecked") %>' runat="server" />
> </td>
> </tr>
> </table>
> </ItemTemplate>
> </asp:Repeater>
<asp:Repeater ID="MyRepeater2" runat="server">
<HeaderTemplate>
<table width="100%" class="table" border="1" style="font: 8pt verdana">
<tr>
<% for (int i = 1; i <= 30; i++)
{
Response.Write("<td>" + i + "</td>");
} %>
</tr>
<tr>
</HeaderTemplate>
<ItemTemplate>
<td>
<asp:CheckBox ID="CheckBox1" Checked='<%# Eval("IsChecked") %>' runat="server" />
</td>
</ItemTemplate>
<FooterTemplate>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>
<asp:Repeater ID="MyRepeater3" runat="server">
<HeaderTemplate>
<table width="100%" class="table" border="1" style="font: 8pt verdana">
<tr>
<% for (int i = 1; i <= 28; i++)
{
Response.Write("<td>" + i + "</td>");
} %>
</tr>
<tr>
</HeaderTemplate>
<ItemTemplate>
<td>
<asp:CheckBox ID="CheckBox1" Checked='<%# Eval("IsChecked") %>' runat="server" />
</td>
</ItemTemplate>
<FooterTemplate>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>