0
將列添加基於數據列到GridView編程容易。GridView控件:如何從一個單獨的數據源
Here是一個類似的問題,但它已經回答了同樣的方式 - 創建一個數據表,並將其綁定到GridView。
,但不會是刪除原始鏈接到主數據源?
我GridView
下面已經有一個綁定到sqldatasource
下方。
Text="Location Board" Width="100%"></asp:Label>
<asp:GridView ID="gvLocationBoard" runat="server" AllowPaging="True" AllowSorting="True"
AutoGenerateColumns="False" CellPadding="4" DataSourceID="sdsLocationBoard"
ForeColor="#333333" GridLines="None">
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<Columns>
...
...
</Columns>
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#999999" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>
<asp:SqlDataSource ID="sdsLocationBoard" runat="server" ConnectionString="<%$ ConnectionStrings:ATCNTV1ConnectionString %>"
SelectCommand="SELECT rce.RollCallID, v1.StudentID, v1.StudentPreferredName + ' ' + v1.StudentFamilyName AS StudentName, cs.CheckStatusName, rce.DateSubmitted, rce.StaffID, rcp.RollCallPeriod, rcp.PeriodStart, rcp.PeriodEnd FROM vwBoardingTenants AS v1 LEFT OUTER JOIN tblBoardingRollCallEntries AS rce ON rce.StudentID = v1.StudentID LEFT OUTER JOIN tblBoardingCheckStatus AS cs ON cs.CheckStatusID = rce.CheckStatusID LEFT OUTER JOIN tblBoardingRollCallPeriods AS rcp ON rcp.RollCallPeriodID = rce.RollCallPeriodID AND rcp.RowStatus = 1 AND rcp.PeriodYear = YEAR(@SelectedDate) AND dbo.fnDateOnly(@SelectedDate) BETWEEN rcp.PeriodStart AND rcp.PeriodEnd WHERE (dbo.fnDateOnly(rce.DateSubmitted) = dbo.fnDateOnly(@SelectedDate)) AND (v1.Year = YEAR(@SelectedDate))">
<SelectParameters>
<asp:ControlParameter ControlID="txtSelectedDate" Name="SelectedDate" Type="DateTime"/>
</SelectParameters>
</asp:SqlDataSource>
不過,如果你想列標題添加到一個基於數據源的GridView控件是完全獨立的(個人)的主要數據來源,對整個GridView的是什麼?
這是我的 「列」 SQL數據源...
<asp:SqlDataSource ID="sdsRollCallPeriods" runat="server" ConnectionString="<%$ ConnectionStrings:ATCNTV1ConnectionString %>"
SelectCommand="SELECT RollCallPeriodID, RollCallPeriod, PeriodYear, PeriodStart, PeriodEnd, RowStatus FROM tblBoardingRollCallPeriods WHERE (RowStatus = 1) AND (PeriodYear = @PeriodYear)"
OnSelecting="sdsRollCallPeriods_Selecting">
<SelectParameters>
<asp:Parameter Name="PeriodYear" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
我想直到結束是這樣一個GridView ...
上的複選框權利和時間,如標題,是新列我想基礎上,sdsRollCallPeriods
SqlDataSource的補充。
您總是可以在包含複選框的'ItemTemplate'中聲明式添加列。然後通過'Eval'或代碼隱藏將它們的'Checked'狀態設置爲aspx。最好的地方就是'GridView'的'RowDataBound'事件。你必須使用'(CheckBox)row.FindControl(「CheckBoxId」)'來獲得引用。底層的數據源可以通過'row.DataItem'訪問。 –