내 웹 페이지에는 입력을 각각 연도와 월로 취하는 2 개의 텍스트 상자가 있습니다. 그런 다음이 값에 따라 데이터베이스 테이블에서 근무일이라고하는 열 값을 검색합니다. 이 값의 형식은 다음과 같습니다 (111110011111001111100111110011) 여기서 1은 작업 일을 의미하고 0은 휴일을 의미합니다 (앉거나 태양 또는 다른 휴일 일 수 있음). 이제이 검색된 값에 따라 30/31 (월 요일에 따라 다름) 확인란을 표시하고 공휴일 확인란을 선택하고 선택을 취소해야합니다. 이것은 다음과 같아야합니다 1 2 3 4 5 6 7 ............................... 30 및 아래의 확인란 그들. 이제 코드는 1 (첫 번째 헤더) 아래에 1 개의 체크 박스 만 표시하고 다음 날짜는 리피터에 표시되지만 체크 박스는 다음 줄에 표시됩니다. 문제를 말해 줄 수 있니?동적으로 확인란을 표시합니다.
코드 뒤에
공용 클래스 MyCheckBox { 공공 부울이의 IsChecked {얻을; 세트; } 은}
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>
내 대답이 정확하다는 것을 알았습니까? –
헤이 맨 나는 그것을 시도했지만 단지 1 개의 체크 박스를 보여 주었다. ojlovecd에 의해 주어진 답은 모든 체크 박스를 보여줍니다. 날짜로 열 이름을 가진 열 멤버로 지정합니다. 1,2 ... 너무 .. 당신이 대답을 편집하고 이것으로 나를 도울 수 있습니까 !! –