如何将单独的查询绑定到GridView Asp.net中的单独列C#

时间:2014-04-25 05:18:34

标签: asp.net c#-4.0 gridview sqldatasource

我正在使用与Oracle 10.2.0.4集成的ASP.net 4.0

这是我的GridView代码及其SqlDatasource

<asp:GridView ID="gvRegNumber" runat="server" AutoGenerateColumns="False" DataSourceID="DsRegNumberGrid"
            Width="100%" AllowPaging="True" BackColor="#CCCCCC" BorderColor="#999999" BorderStyle="Solid"
            BorderWidth="3px" CellSpacing="2" ForeColor="Black" PageSize="3" 
            CssClass="mGrid" onrowcommand="gvRegNumber_RowCommand" >
            <Columns>
                <asp:BoundField DataField="Registration No." HeaderText="Registration No." SortExpression="Registration No." />
                <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
                <asp:BoundField DataField="Make" HeaderText="Make" SortExpression="Make" />
                <asp:BoundField DataField="Model" HeaderText="Model" SortExpression="Model" />
                <asp:BoundField DataField="Status" HeaderText="Status" SortExpression="Status" />
                <asp:BoundField DataField="From Date" HeaderText="From Date" SortExpression="From Date" />
                <asp:BoundField DataField="To Date" HeaderText="To Date" SortExpression="To Date" />
                         <asp:TemplateField>
                <EditItemTemplate>
                    <asp:ImageButton ID="imgbtnUpdate" CommandName="Update" runat="server" ImageUrl="~/Themes/Icons/edit_icon.png"
                        ToolTip="Update" Height="20px" Width="20px" />
                </EditItemTemplate>
                <HeaderTemplate>
                    <asp:Label ID="Edit" Text="Edit" runat="server"></asp:Label>
                </HeaderTemplate>
                <ItemTemplate>
                    <asp:ImageButton ID="EditRow" CssClass="mGrid-edit" ImageUrl="~/Themes/Icons/edit_icon.png"
                        runat="server" />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <HeaderTemplate>
                    <asp:Label ID="Delete" Text="Edit" runat="server"></asp:Label>
                </HeaderTemplate>
                <ItemTemplate>
                    <asp:ImageButton ID="DeleteRow" CssClass="mGrid-delete" ImageUrl="~/Themes/Icons/delete_icon.png"
                        runat="server" />
                </ItemTemplate>
            </asp:TemplateField>
            </Columns>

        </asp:GridView>
        <asp:SqlDataSource ID="DsRegNumberGrid" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
            ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT &quot;fkEnumerationId&quot; AS &quot;Registration No.&quot;, &quot;Text&quot; AS &quot;Name&quot;, &quot;AdditionalValueText&quot; AS &quot;Make&quot;, &quot;AdditionalValue&quot; AS &quot;Model&quot;, &quot;IsActive&quot; AS &quot;Status&quot;, &quot;CreatedOn&quot; AS &quot;From Date&quot;, &quot;LastUpdatedOn&quot; AS &quot

;To Date&quot; FROM &quot;EnumerationValue&quot;">
    </asp:SqlDataSource>

我只想在网格中为单独的列分别使用数据源。 那可能吗?如果是这样,怎么样?

提前致谢。

3 个答案:

答案 0 :(得分:3)

您可以在SP中执行此操作

select en1.text as 'Country', en2.text as 'City',en3.text as 'Region'  from
EnumValue en1, EnumValue en2, EnumValue en3
where en1.id = en2.[fkEnumeration] and en3.[fkEnumeration] = en2.id  and 
en1.id='yourid' ;

答案 1 :(得分:1)

在您的存储过程中尝试此操作:

答案 2 :(得分:0)

这就是我从您的要求中理解的内容,您需要一个动态更改其列值的网格,或者您必须动态绑定网格,而不仅仅是数据库输入数据。&#34; 在这种情况下,在页面加载事件中,您可以动态创建表并添加所需的任何控件。在这种情况下,您也可以添加事件(textChange,selectedindexchange等)。 假设您有10个用户,并且每个用户都必须获取该地址。因此,您可能有第一列用于国家/地区下拉,在第二列中您可能有一个州下拉列表,在第三列中您可能有一个城市下拉列表并且所有都是运行时相互关联的。 如果你有这样的要求,那么我建议你去动态表生成而不是网格。