【问题标题】:Autogenerated Gridview with All Cells in Edit Mode by Default默认情况下,所有单元格都处于编辑模式的自动生成的 Gridview
【发布时间】:2014-02-18 21:21:07
【问题描述】:

所以我有一个绑定到 SQL 数据源存储过程的 gridview。存储过程返回一个数据透视表,其中许多列在运行时之前是未知的。因此,我需要自动生成列。

gridview 旨在允许类似 Excel 的数据更新。所以目标是将网格加载为文本框。我知道如果要在我的 aspx 页面上声明列,我可以创建模板列并以这种方式处理它们的可见性。

所以我相信我需要一种方法来以编程方式将所有列设置为模板字段(不知道列名),或者我需要发现我可以“翻转开关”并使所有内容都可编辑的方法。

提前致谢!

    <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSourceExcelGridTest">
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSourceExcelGridTest" runat="server" ConnectionString="<%$ ConnectionStrings:WebAppsConnectionString %>" SelectCommand="spJobForecastingGetEmployeesByDepartmentAndProject_v1" SelectCommandType="StoredProcedure" UpdateCommand="spJobForecastingUpdateHours" UpdateCommandType="StoredProcedure">
    <SelectParameters>
        <asp:Parameter Name="DepartmentNumber" Type="String" DefaultValue="13211" />
        <asp:Parameter Name="ProjectNumber" Type="String" DefaultValue="13211" />
        <asp:Parameter Name="startDate" Type="DateTime" DefaultValue="2/21/2014" />
    </SelectParameters>
    <UpdateParameters>
        <asp:Parameter Name="DepartmentNumber" Type="String" />
        <asp:Parameter Name="ProjectNumber" Type="String" />
        <asp:Parameter Name="Alias" Type="String" />
        <asp:Parameter Name="WorkWeek" Type="DateTime" />
        <asp:Parameter Name="WorkHours" Type="Int32" />
    </UpdateParameters>
</asp:SqlDataSource>

【问题讨论】:

    标签: asp.net vb.net gridview


    【解决方案1】:

    试试这个: 更新代码

    <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSourceExcelGridTest">
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSourceExcelGridTest" runat="server" ConnectionString="<%$ ConnectionStrings:WebAppsConnectionString %>" SelectCommand="spJobForecastingGetEmployeesByDepartmentAndProject_v1" SelectCommandType="StoredProcedure" UpdateCommand="spJobForecastingUpdateHours" UpdateCommandType="StoredProcedure">
    <SelectParameters>
        <asp:Textbox ID="DepartmentNumber" DefaultValue="13211" text='<%# Eval("DepartmentNumber") %>'></asp:TextBox> 
        <asp:Textbox ID="ProjectNumber" Type="String" DefaultValue="13211" Text='<%# Eval("ProjectNumber") %>'></asp:TextBox> 
        <asp:Textbox ID="startDate" Type="DateTime" DefaultValue="2/21/2014" Text='<%# Eval("startDate") %>'></asp:TextBox> 
    </SelectParameters>
    <UpdateParameters>
        <asp:Textbox ID="DepartmentNumber" Type="String" text='<%# Eval("DepartmentNumber") %>'></asp:TextBox>
        <asp:Textbox ID="ProjectNumber" Type="String" text='<%# Eval("ProjectNumber") %>'></asp:TextBox>
        <asp:Textbox ID="Alias" Type="String" text='<%# Eval("Alias") %>'></asp:TextBox>
        <asp:Textbox ID="WorkWeek" Type="DateTime" text='<%# Eval("WorkWeek") %>'></asp:TextBox>
        <asp:Textbox ID="WorkHours" Type="Int32" text='<%# Eval("WorkHours") %>'></asp:TextBox>
    </UpdateParameters>
    </asp:SqlDataSource>
    

    【讨论】:

    • 您需要编辑以上内容以匹配您的 CSS 输入以及您的数据库条目。但这会完成它。
    • James - 此解决方案似乎使用硬编码列(不是选项),并且不使用 gridview(不是交易破坏者,但我失去了 gridview 的内置操作,这意味着我我必须自己创造这些)。另外,我不确定这会去哪里。我想这会在 page_load 上调用?
    • 哇,我的错,让我把它转换成 aspx 格式。现在它是 vbhtml 格式。
    • 更好的是,看看这个:(code.msdn.microsoft.com/CSASPNETGridView-5b16ce70) 他们使用 gridview 为您的问题提供了完整的解决方案。唯一的问题是它在 c# 中。如果您可以提供迄今为止创建的任何代码来执行此操作,那么我帮助您实现它会让事情变得更容易。
    • 刚刚找到了同一个例子的vb代码。给你(code.msdn.microsoft.com/VBASPNETGridView-19039173),享受吧。
    猜你喜欢
    • 1970-01-01
    • 2013-06-03
    • 2012-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    相关资源
    最近更新 更多