Mulitple gridview checkboxes

Last post 02-24-2009 2:36 AM by Qin Dian Tang - MSFT. 1 replies.

Sort Posts:

  • Mulitple gridview checkboxes

    02-19-2009, 3:26 PM
    • Member
      7 point Member
    • germaine84
    • Member since 11-05-2008, 9:24 PM
    • Posts 53

    I have a gridview that contains a checkbox for each day of the week - Sunday through Saturday.I also have a calendar control.  Whenever a user clicks a date, my code automatically calculates the previous sunday.

    My first question is...  Once I calculate the previous Sunday, how do I add the dates to my checkbox header names.

     

    My second question is...

    I have a database query that returns a 7 day date range from a database.  The start date is always a Sunday and the end date is always a Saturday, from question 1.  I want to check the checkboxes that correspond to the dates from the sql query... 

    SELECT  T._NAME,
              NVL(SC.STARTDATE, ' ') AS STARTDATE,
              NVL(SC.ENDDATE, ' ') AS ENDDATE 

    FROM SOMETABLE

    WHERE SC.COUNT_REQUEST_ID = P_COUNT_REQUEST_ID AND
     STARTDATE BETWEEN P_STARTDATE AND P_ENDDATE

     below is my gridview

    <asp:TemplateField HeaderText="Monday" >

    <ItemTemplate>

    <asp:CheckBox id="day2" runat="server" />

    </ItemTemplate>

    </asp:TemplateField>

     

    <asp:TemplateField HeaderText="Tuesday">

    <ItemTemplate>

    <asp:CheckBox id="day3" runat="server" />

    </ItemTemplate>

    </asp:TemplateField>

    <asp:TemplateField HeaderText="Wednesday">

    <ItemTemplate>

    <asp:CheckBox id="day4" runat="server" />

    </ItemTemplate>

    </asp:TemplateField>

    <asp:TemplateField HeaderText="Thursday">

    <ItemTemplate>

    <asp:CheckBox id="day5" runat="server" />

    </ItemTemplate>

    </asp:TemplateField>

    <asp:TemplateField HeaderText="Friday">

    <ItemTemplate>

    <asp:CheckBox id="day6" runat="server" />

    </ItemTemplate>

    </asp:TemplateField>

    <asp:TemplateField HeaderText="Saturday">

    <ItemTemplate>

    <asp:CheckBox id="day7" runat="server" />

    </ItemTemplate>

    </asp:TemplateField>

    </Columns>

  • Re: Mulitple gridview checkboxes

    02-24-2009, 2:36 AM
    Answer

    Hi germaine84,

    Here is my sample. I use a function to calculate the last Sunday and use a SqlDataSource control to bind GridView of the last week:

    <asp:Calendar ID="c1" runat="server" OnSelectionChanged="c1_SelectionChanged"></asp:Calendar>
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
            <Columns>
              <asp:TemplateField HeaderText="Monday" >
              <ItemTemplate>
                <asp:CheckBox id="day2" runat="server" Text='<%# Eval("mon") %>' />
              </ItemTemplate>
              </asp:TemplateField>
              <asp:TemplateField HeaderText="Tuesday" >
              <ItemTemplate>
                <asp:CheckBox id="day3" runat="server" Text='<%# Eval("tue") %>' />
              </ItemTemplate>
              </asp:TemplateField>
              <asp:TemplateField HeaderText="Wednesday" >
              <ItemTemplate>
                <asp:CheckBox id="day4" runat="server" Text='<%# Eval("wed") %>' />
              </ItemTemplate>
              </asp:TemplateField>
              <asp:TemplateField HeaderText="Thursday" >
              <ItemTemplate>
                <asp:CheckBox id="day5" runat="server" Text='<%# Eval("thu") %>' />
              </ItemTemplate>
              </asp:TemplateField>
              <asp:TemplateField HeaderText="Friday" >
              <ItemTemplate>
                <asp:CheckBox id="day6" runat="server" Text='<%# Eval("fri") %>' />
              </ItemTemplate>
              </asp:TemplateField>
              <asp:TemplateField HeaderText="Saturday" >
              <ItemTemplate>
                <asp:CheckBox id="day7" runat="server" Text='<%# Eval("sat") %>' />
              </ItemTemplate>
              </asp:TemplateField>
            </Columns>
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:sql %>"
            SelectCommand="SELECT  T._NAME, NVL(SC.STARTDATE, ' ') AS STARTDATE, NVL(SC.ENDDATE, ' ') AS ENDDATE FROM SOMETABLE WHERE SC.COUNT_REQUEST_ID = @COUNT_REQUEST_ID AND STARTDATE BETWEEN @P_STARTDATE AND @P_ENDDATE">
            <SelectParameters>
              <asp:Parameter Name="COUNT_REQUEST_ID" />
              <asp:Parameter Name="P_STARTDATE" />
              <asp:Parameter Name="P_ENDDATE" />
            </SelectParameters>
    </asp:SqlDataSource>

    protected void c1_SelectionChanged(object sender, EventArgs e)
        {
            DateTime dTime = PreSunday(c1.SelectedDate);
            SqlDataSource1.SelectParameters["COUNT_REQUEST_ID"].DefaultValue = "the_id";   //input the id
            SqlDataSource1.SelectParameters["P_STARTDATE"].DefaultValue = dTime.ToShortDateString();
            SqlDataSource1.SelectParameters["P_ENDDATE"].DefaultValue = dTime.AddDays(5).ToShortDateString();

            GridView1.DataSourceID = "SqlDataSource1";
            GridView1.DataBind();
        }

        protected DateTime PreSunday(DateTime dt)
        {
            string day = dt.DayOfWeek.ToString();
            switch (day)
            {
                case "Sunday":
                    return dt.AddDays(-6);
                case "Saturday":
                    return dt.AddDays(-5);
                case "Friday":
                    return dt.AddDays(-4);
                case "Thursday":
                    return dt.AddDays(-3);
                case "Wednesday":
                    return dt.AddDays(-2);
                case "Tuesday":
                    return dt.AddDays(-1);
                default:
                    return dt;
            }
        }

    Maybe my understanding is not correct, you can refer the idea.

    Thanks,

    Qin Dian Tang
    Microsoft Online Community Support

    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
Page 1 of 1 (2 items)