2

基本的に、グリッドビューでいっぱいのページのパフォーマンスを改善して、C# の量を減らし、できるだけ多くの GridView 設定を ASP コードに移動する必要があります (実行時にバインドされ、C# にとどまる必要があるデータ自体ではありません)。

私は GridView コントロールに比較的慣れていないため、設定を GridView に移動するのに助けが必要です。このコードがあるページには約 8 または 9 のテーブルがあるためです。

これが私の ASP コードです。

<asp:GridView runat="server" ID="tblBasicProcessingTime"
    Caption="Basic Processing Stats" ShowHeader="False">
</asp:GridView>

そして私のC#コード:

var longestTime = ReportData.OrderByDescending(x => x.TimeSpentProcessing).FirstOrDefault();
var averageTime = ReportData.Average(x => x.TimeSpentProcessing);
var shortestTime = ReportData.OrderBy(x => x.TimeSpentProcessing).FirstOrDefault();

var table = new DataTable();

const string col1Name = "Header";
const string col2Name = "Data";

table.Columns.Add(col1Name);
table.Columns.Add(col2Name);

var row1 = table.NewRow();
row1[col1Name] = "Longest Processing Time";
row1[col2Name] = longestTime.TimeSpentProcessing;
table.Rows.Add(row1);

var row2 = table.NewRow();
row2[col1Name] = "Average Processing Time";
row2[col2Name] = averageTime;
table.Rows.Add(row2);

var row3 = table.NewRow();
row3[col1Name] = "Shortest Processing Time";
row3[col2Name] = shortestTime.TimeSpentProcessing;
table.Rows.Add(row3);

tblBasicProcessingTime.DataSource = table;
tblBasicProcessingTime.DataBind();

前もって感謝します。

4

1 に答える 1

1
<asp:GridView
            ID="gvList"
            runat="server"
            AutoGenerateColumns="False"
            EnableModelValidation="True"
            HeaderStyle-HorizontalAlign="Center"
            Width="100%"
            RowStyle-Height="25px"
            HeaderStyle-CssClass="ui-th-div-ie"
            RowStyle-CssClass="TR_ROW1"
            AlternatingRowStyle-CssClass="TR_ROW2"
            HeaderStyle-ForeColor="#0073ea"
            BorderWidth="1px"
            CellPadding="2"
            HorizontalAlign="Center"
            OnPageIndexChanging="gvList_PageIndexChanging"
            AllowPaging="true"
            AllowSorting="true"
            PagerStyle-HorizontalAlign="Right"
            PageSize="1"
            OnSorting="gvList_Sorting">

            <Columns>
                <asp:TemplateField HeaderStyle-Width="20%" HeaderText="<%$ Resources: CommonResources, lbl_InstoreHistLotNo.Text %>" SortExpression="LotNo">
                    <ItemTemplate>
                        <asp:Label ID="lbl_InstoreHistLotNo" runat="server" Text='<%#Eval("LotNo")%>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderStyle-Width="10%" HeaderText="<%$ Resources: CommonResources, lbl_InstoreHistPartNo.Text %>" SortExpression="PartCode">
                    <ItemTemplate>
                        <asp:Label ID="lbl_InstoreHistPartNo" runat="server" Text='<%#Eval("PartCode")%>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderStyle-Width="10%" HeaderText="<%$ Resources: CommonResources, lbl_InstoreHistPartName.Text %>" SortExpression="PartName">
                    <ItemTemplate>
                            <asp:Label ID="lbl_InstoreHistPartName" runat="server" Text='<%#Eval("PartName")%>'/>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderStyle-Width="10%" HeaderText="<%$ Resources: CommonResources, lbl_InstoreHistInQuality.Text %>" SortExpression="Quality">
                    <ItemStyle HorizontalAlign="Right" />
                    <ItemTemplate>
                            <asp:Label ID="lbl_InstoreHistInQuality" runat="server" Text='<%#Eval("Quality")%>'/>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderStyle-Width="10%" HeaderText="<%$ Resources: CommonResources, lbl_InstoreHistInUsercode.Text %>" SortExpression="UserCode">
                    <ItemTemplate>
                        <asp:Label ID="lbl_InstoreHistInUsercode" runat="server" Text='<%#Eval("UserCode")%>'/>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderStyle-Width="15%" HeaderText="<%$ Resources: CommonResources, lbl_InstoreHistInTime.Text %>" SortExpression="InStoreDate">
                </asp:TemplateField>
            </Columns>
            <PagerStyle HorizontalAlign="Left"   />
            <PagerSettings Position="TopAndBottom" Mode="Numeric" />
        </asp:GridView>

これは、gridview データバインドの単純なデモです。ただし、私のヘッダーテキストはリソースファイルから読み込まれます。文字列「aaa」、「bbb」、「ccc」のように自分で設定できます

バックエンドでは、コードは次のようになります。

DataTable dt = SqlHelper.ExcuteDataSet("select * from InStoreHistory");
gvList.DataSource = dt;
gvList.DataBind();
于 2012-08-07T09:18:43.833 に答える