1

我需要使用 ASP.Net gridview 并在我的 asp.net mvc 内容视图中执行诸如排序分页和选择复选框之类的操作。我不知道该怎么办。我写了这样的东西:

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <table runat="server" id="tbldealData" style="width: auto; height: auto">
                <tr>
                    <td>
                    <cc1:ExtendedGridView ID="ExtendedGridView1" runat="server" AutoGenerateColumns="false"
                            AllowFiltering="true">
                            <Columns>
                            <asp:TemplateField HeaderText="Wait For Payment From SAP">
                                <EditItemTemplate>
                                    <asp:CheckBox ID="chkWaitForSAP" runat="server" />
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:CheckBox runat="server" ID="chkWaitForSAP" Checked="true" AutoPostBack="true"/>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Deal Number" SortExpression="DealNumber">
                                <EditItemTemplate>
                                    <asp:TextBox ID="TextBox2" runat="server" Text='<%= Html.LabelFor(model => model.DealNumber) %>'></asp:TextBox>
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="Label2" runat="server" Text='<%= Html.LabelFor(model => model.DealNumber) %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Cost Number" SortExpression="CostNumber">
                                <EditItemTemplate>
                                    <asp:TextBox ID="TextBox5" runat="server" Text='<%= Html.LabelFor(model => model.CostNumber) %>'></asp:TextBox>
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="Label5" runat="server" Text='<%= Html.LabelFor(model => model.CostNumber) %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Source System" SortExpression="SourceSystemName">
                                <EditItemTemplate>
                                    <asp:TextBox ID="TextBox6" runat="server" Text='<%= Html.LabelFor(model => model.SourceSystemName) %>'></asp:TextBox>
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="Label6" runat="server" Text='<%= Html.LabelFor(model => model.SourceSystemName) %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="CounterParty" SortExpression="CounterpartyName">
                                <EditItemTemplate>
                                    <asp:TextBox ID="TextBox7" runat="server" Text='<%= Html.LabelFor(model => model.CounterpartyName) %>'></asp:TextBox>
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="Label7" runat="server" Text='<%= Html.LabelFor(model => model.CounterpartyName) %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                     </Columns>
                        <AlternatingRowStyle BackColor="#E5E5E5" />
                        <PagerStyle ForeColor="Blue" />
                        <PagerTemplate>
                            <asp:LinkButton CommandName="Page" CommandArgument="First" ID="LinkButton1" runat="server"
                                Style="color: Blue">  
                                « First</asp:LinkButton>
                            <asp:LinkButton CommandName="Page" CommandArgument="Prev" ID="LinkButton2" runat="server"
                                Style="color: Blue"> < Prev</asp:LinkButton>
                            [<%= ExtendedGridView1.PageIndex * ExtendedGridView1.PageSize%>-<%= ExtendedGridView1.PageIndex * ExtendedGridView1.PageSize + ExtendedGridView1.PageSize - 1%>]
                            <asp:LinkButton CommandName="Page" CommandArgument="Next" ID="LinkButton3" runat="server"
                                Style="color: Blue">  
                                Next ></asp:LinkButton>
                            <asp:LinkButton CommandName="Page" CommandArgument="Last" ID="LinkButton4" runat="server"
                                Style="color: Blue">  
                                Last »</asp:LinkButton>
                        </PagerTemplate>
                        </cc1:ExtendedGridView>
                         </td>
                </tr>
                <tr>
                    <td>
                        <input type="submit" value="Save" />
                        <input type="reset" value="Cancel" />
                    </td>
                </tr>
            </table>
        </ContentTemplate>
    </asp:UpdatePanel>
</asp:Content>

但它并没有在我的渲染视图中向我展示任何东西。现在是空白。请帮忙

4

3 回答 3

0

虽然可以,但我不建议在 MVC 中使用 Web 控件。我建议使用客户端网格,或创建实现类似功能的 HTML 助手。

如果您想要一个免费、优雅且易于实现的 MVC 网格,您可以查看Telerik。网格是世界级的,IMO。

于 2010-10-30T21:54:22.763 回答
0

如果您不反对下载 ASP.NET MVC 3 Beta,那么有一个名为WebGrid的新控件/帮助器将完全满足您的需求。

在这里写/使用它。

于 2010-10-30T22:15:30.277 回答
0

如果您想要一些非常强大甚至轻量级的东西,请查看codeplex的MVCContrib项目中包含的网格助手

在这里你会找到一些关于论点的好博客文章

  1. 使用 MVCContrib Grid 和 Pager 的 ASP.NET MVC 分页/排序/过滤
  2. 正在寻找 MVC 网格控件?试试 MVC 贡献!
  3. 使用 MVCContrib 网格进行编辑
  4. 演练:将 MvcContrib 网格与 jQuery 数据表一起使用的完整示例
于 2010-10-31T00:38:40.757 回答