学生の出席を示す ASPxGridView を開発しています。そのために、sqlqry を渡して、1600 人の学生の中から 60 人の学生をフィルタリングしています。グリッド コントロールは、RollNo と Name の 2 つの列と 2 つのテンプレート列 (つまり、出席ステータス用の ASPxCombobox と備考用の ASPxTextBox) を持つデザイン環境で作成されます。デザイン ウィンドウのコードを次に示します。
[HTML]
<dx:ASPxGridView ID="dxgrd_StudentAttendance" runat="server" Theme="Glass" Width="800px" AutoGenerateColumns="False" onprocesscolumnautofilter="dxgrd_StudentAttendance_ProcessColumnAutoFilter">
<Columns>
<dx:GridViewDataTextColumn FieldName="roll_no" VisibleIndex="1" Caption="Roll No" Width="70px">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="Name" VisibleIndex="2" Caption="Name of the Student" Width="300px">
</dx:GridViewDataTextColumn>
<dx:GridViewDataColumn FieldName="Attendance" VisibleIndex="3" Caption="Attendance Status" Width="100px">
<DataItemTemplate>
<dx:ASPxComboBox ID="dxcb_AttStatus" runat="server" ValueType="System.String" Theme="Glass" Width ="100px">
<Items>
<dx:ListEditItem Text="Present" Value="P" Selected ="true" />
<dx:ListEditItem Text="Absent" Value="A" />
<dx:ListEditItem Text="Leave" Value="L" />
<dx:ListEditItem Text="OnDuty" Value="O" />
</Items>
</dx:ASPxComboBox>
</DataItemTemplate>
</dx:GridViewDataColumn>
<dx:GridViewDataColumn FieldName="Remarks" VisibleIndex="4" Caption="Remarks" Width="230px">
<DataItemTemplate>
<dx:ASPxTextBox ID="dxtxt_Remarks" runat="server" ValueType="System.String" Theme="Glass" Width="230px"/>
</DataItemTemplate>
</dx:GridViewDataColumn>
</Columns>
<Settings ShowFilterRow="True" />
<SettingsBehavior AllowFocusedRow="True" />
<SettingsPager
NumericButtonCount="90"
PageSize="90"
RenderMode="Lightweight">
</SettingsPager>
<Settings ShowFooter="True" />
<Styles>
<Header HorizontalAlign="Center">
</Header>
</Styles>
<TotalSummary>
<dx:ASPxSummaryItem
FieldName="Name"
SummaryType="Count" ShowInColumn="Name"/>
</TotalSummary>
</dx:ASPxGridView>
C# コード ウィンドウでは、構成され、コード ウィンドウに入力されたデータベースを以下に示します。
【C#コード】
SqlDataSource sqlds_StudentAttendanceSection = new SqlDataSource();
SqlDataSource sqlds_StudentAttendanceDept = new SqlDataSource();
sqlds_StudentAttendanceSection.SelectCommand = String.Format("Select b.roll_no, b.Name from tbl_AcademicYear a, tbl_Student_Master b, tbl_Dept_Master c," +
" tbl_Semester_Master d, tbl_Subject_Master e, tbl_Subject_Dept_Assigned f, tbl_Scheme_master g" +
" where a.AcademicYear=b.AcademicYear and b.Dept_Code=c.Dept_Code and d.Semester_ID=f.semester_id" +
" and e.Sub_Code=f.Sub_Code and c.Dept_Code = f.dept_code and g.Sch_Code=a.Sch_Code and" +
" e.Sub_Code='{0}'and a.AcademicYear='{1}'and c.Dept_Code='{0}'order by b.Roll_No",
dxcbSubject.Value,
dxcbAcademicYear.Text,
dxcbDepartment.Value);
sqlds_StudentAttendanceDept.ConnectionString = frmAttendance.strCon;
dxgrd_StudentAttendance.DataSource = sqlds_StudentAttendanceDept;
dxgrd_StudentAttendance.DataBind();
問題は、テンプレート コントロールなしで aspxgridview にデータを表示するのにかかる時間は許容範囲内 (1 秒または 2 秒) です。ただし、テンプレート コントロールを使用すると、aspxgridview にデータを表示するのにかかる時間は約 15 ~ 20 秒です (許容できません)。提供されたヘルプや提案は、私にとって大きな助けになります。
ありがとうございました