GridView相关数据 [英] GridView Related Data

查看:92
本文介绍了GridView相关数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的GridView工作正常,但我希望以非编辑模式显示相关数据,而不是数字主键。具有描述性数据的DropDownList以编辑模式显示。

My GridView is working fine but I would like to show the related data in non edit mode rather than the numerical primary key. The DropDownList with the descriptive data appears in edit mode.

我的代码(Default.aspx)&截图已附上。问题是TeamID和JobFunID。

My code (Default.aspx) & screenshot is attached. The problem is TeamID and JobFunID.

任何想法?

<%@ Page Title="Home Page" Language="vb" MasterPageFile="~/Site.Master" AutoEventWireup="false"
    CodeBehind="Default.aspx.vb" Inherits="WebApplication21._Default" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <h2>
        Welcome to ASP.NET!
    </h2>
    <p>
        To learn more about ASP.NET visit <a href="http://www.asp.net" title="ASP.NET Website">www.asp.net</a>.
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConflictDetection="CompareAllValues" 
            ConnectionString="<%$ ConnectionStrings:F1_2011-3ConnectionString %>" 
            DeleteCommand="DELETE FROM [Employees] WHERE [EmployeeID] = @original_EmployeeID AND [TeamID] = @original_TeamID
            AND [JobFunID] = @original_JobFunID AND [EmployeeSurname]
            = @original_EmployeeSurname AND [EmployeeFirstName] = @original_EmployeeFirstName AND [DateOfBirth] = @original_DateOfBirth
            AND [MaritalStatus] = @original_MaritalStatus AND
            [Nationality] = @original_Nationality" 
            InsertCommand="INSERT INTO [Employees] ([TeamID], [JobFunID], [EmployeeSurname], [EmployeeFirstName], [DateOfBirth], [MaritalStatus],
            [Nationality]) VALUES
           (@TeamID, @JobFunID, @EmployeeSurname, @EmployeeFirstName, @DateOfBirth, @MaritalStatus, @Nationality)" 
            OldValuesParameterFormatString="original_{0}" 
            SelectCommand="SELECT [EmployeeID], [TeamID], [JobFunID], [EmployeeSurname], [EmployeeFirstName], [DateOfBirth], [MaritalStatus],
            [Nationality] FROM [Employees]" 
            UpdateCommand="UPDATE [Employees] SET [TeamID] = @TeamID, [JobFunID] = @JobFunID, [EmployeeSurname] = @EmployeeSurname, [EmployeeFirstName]
            = @EmployeeFirstName,
            [DateOfBirth] = @DateOfBirth, [MaritalStatus] = @MaritalStatus, [Nationality] = @Nationality WHERE [EmployeeID] = @original_EmployeeID AND
            [TeamID] = @original_TeamID AND
            [JobFunID] = @original_JobFunID AND [EmployeeSurname] = @original_EmployeeSurname AND [EmployeeFirstName] = @original_EmployeeFirstName AND
            [DateOfBirth] = @original_DateOfBirth AND [MaritalStatus] = @original_MaritalStatus AND [Nationality] = @original_Nationality">
            <DeleteParameters>
                <asp:Parameter Name="original_EmployeeID" Type="Int32" />
                <asp:Parameter Name="original_TeamID" Type="Int32" />
                <asp:Parameter Name="original_JobFunID" Type="Int32" />
                <asp:Parameter Name="original_EmployeeSurname" Type="String" />
                <asp:Parameter Name="original_EmployeeFirstName" Type="String" />
                <asp:Parameter Name="original_DateOfBirth" Type="DateTime" />
                <asp:Parameter Name="original_MaritalStatus" Type="String" />
                <asp:Parameter Name="original_Nationality" Type="String" />
            </DeleteParameters>
            <InsertParameters>
                <asp:Parameter Name="TeamID" Type="Int32" />
                <asp:Parameter Name="JobFunID" Type="Int32" />
                <asp:Parameter Name="EmployeeSurname" Type="String" />
                <asp:Parameter Name="EmployeeFirstName" Type="String" />
                <asp:Parameter Name="DateOfBirth" Type="DateTime" />
                <asp:Parameter Name="MaritalStatus" Type="String" />
                <asp:Parameter Name="Nationality" Type="String" />
            </InsertParameters>
            <UpdateParameters>
                <asp:Parameter Name="TeamID" Type="Int32" />
                <asp:Parameter Name="JobFunID" Type="Int32" />
                <asp:Parameter Name="EmployeeSurname" Type="String" />
                <asp:Parameter Name="EmployeeFirstName" Type="String" />
                <asp:Parameter Name="DateOfBirth" Type="DateTime" />
                <asp:Parameter Name="MaritalStatus" Type="String" />
                <asp:Parameter Name="Nationality" Type="String" />
                <asp:Parameter Name="original_EmployeeID" Type="Int32" />
                <asp:Parameter Name="original_TeamID" Type="Int32" />
                <asp:Parameter Name="original_JobFunID" Type="Int32" />
                <asp:Parameter Name="original_EmployeeSurname" Type="String" />
                <asp:Parameter Name="original_EmployeeFirstName" Type="String" />
                <asp:Parameter Name="original_DateOfBirth" Type="DateTime" />
                <asp:Parameter Name="original_MaritalStatus" Type="String" />
                <asp:Parameter Name="original_Nationality" Type="String" />
            </UpdateParameters>
        </asp:SqlDataSource>
        <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
            ConflictDetection="CompareAllValues" 
            ConnectionString="<%$ ConnectionStrings:F1_2011-3ConnectionString %>" 
            DeleteCommand="DELETE FROM [Teams] WHERE [TeamID] = @original_TeamID AND [TeamName] = @original_TeamName" 
            InsertCommand="INSERT INTO [Teams] ([TeamName]) VALUES (@TeamName)" 
            OldValuesParameterFormatString="original_{0}" 
            SelectCommand="SELECT [TeamID], [TeamName] FROM [Teams]" 
            UpdateCommand="UPDATE [Teams] SET [TeamName] = @TeamName WHERE [TeamID] = @original_TeamID AND [TeamName] = @original_TeamName">
            <DeleteParameters>
                <asp:Parameter Name="original_TeamID" Type="Int32" />
                <asp:Parameter Name="original_TeamName" Type="String" />
            </DeleteParameters>
            <InsertParameters>
                <asp:Parameter Name="TeamName" Type="String" />
            </InsertParameters>
            <UpdateParameters>
                <asp:Parameter Name="TeamName" Type="String" />
                <asp:Parameter Name="original_TeamID" Type="Int32" />
                <asp:Parameter Name="original_TeamName" Type="String" />
            </UpdateParameters>
        </asp:SqlDataSource>
        <asp:SqlDataSource ID="SqlDataSource3" runat="server" 
            ConnectionString="<%$ ConnectionStrings:F1_2011-3ConnectionString %>" 
            SelectCommand="SELECT [JobFunID], [JobFunction] FROM [JobFunction]" 
            ConflictDetection="CompareAllValues" 
            DeleteCommand="DELETE FROM [JobFunction] WHERE [JobFunID] = @original_JobFunID AND [JobFunction] = @original_JobFunction" 
            InsertCommand="INSERT INTO [JobFunction] ([JobFunction]) VALUES (@JobFunction)" 
            OldValuesParameterFormatString="original_{0}" 
            UpdateCommand="UPDATE [JobFunction] SET [JobFunction] = @JobFunction WHERE [JobFunID] = @original_JobFunID AND [JobFunction] = @original_JobFunction">
            <DeleteParameters>
                <asp:Parameter Name="original_JobFunID" Type="Int32" />
                <asp:Parameter Name="original_JobFunction" Type="String" />
            </DeleteParameters>
            <InsertParameters>
                <asp:Parameter Name="JobFunction" Type="String" />
            </InsertParameters>
            <UpdateParameters>
                <asp:Parameter Name="JobFunction" Type="String" />
                <asp:Parameter Name="original_JobFunID" Type="Int32" />
                <asp:Parameter Name="original_JobFunction" Type="String" />
            </UpdateParameters>
        </asp:SqlDataSource>
        <asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
            AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="EmployeeID" 
            DataSourceID="SqlDataSource1">
            <Columns>
                <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" 
                    ShowSelectButton="True" />
                <asp:BoundField DataField="EmployeeID" HeaderText="EmployeeID" 
                    InsertVisible="False" ReadOnly="True" SortExpression="EmployeeID" />
                <asp:TemplateField HeaderText="TeamID" SortExpression="TeamID">
                    <EditItemTemplate>
                        <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" 
                            DataSourceID="SqlDataSource2" DataTextField="TeamName" DataValueField="TeamID" 
                            SelectedValue='<%# Bind("TeamID") %>' Width="107px">
                        </asp:DropDownList>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Bind("TeamID") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="JobFunID" SortExpression="JobFunID">
                    <EditItemTemplate>
                        <asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="SqlDataSource3" 
                            DataTextField="JobFunction" DataValueField="JobFunID" 
                            SelectedValue='<%# Bind("JobFunID") %>' Width="130px" AutoPostBack="True">
                        </asp:DropDownList>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label2" runat="server" Text='<%# Bind("JobFunID") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="EmployeeSurname" HeaderText="EmployeeSurname" 
                    SortExpression="EmployeeSurname" />
                <asp:BoundField DataField="EmployeeFirstName" HeaderText="EmployeeFirstName" 
                    SortExpression="EmployeeFirstName" />
                <asp:BoundField DataField="DateOfBirth" HeaderText="DateOfBirth" 
                    SortExpression="DateOfBirth" />
                <asp:BoundField DataField="MaritalStatus" HeaderText="MaritalStatus" 
                    SortExpression="MaritalStatus" />
                <asp:BoundField DataField="Nationality" HeaderText="Nationality" 
                    SortExpression="Nationality" />
            </Columns>
        </asp:GridView>
    </p>
    <p>
        You can also find <a href="http://go.microsoft.com/fwlink/?LinkID=152368&amp;clcid=0x409"
            title="MSDN ASP.NET Docs">documentation on ASP.NET at MSDN</a>.
    </p>
</asp:Content>




推荐答案

嘿,在我看来,我认为你可以这样做:

Hey,In my mind,I think you can do this:

  <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# MyFunc(Eval("TeamID").ToString()) %>'></asp:Label>
                    </ItemTemplate>

然后plz创建一个名为MyFunc的公共函数(字符串s),然后执行查询以找出TeamName的特定值作为返回值......

Then plz create a public function called MyFunc(string s),and then do query to find out the specific one value for TeamName as a return value……

您可以使用相同的方式显示:

And you can use the same way to show:

 <ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# MyFunc2(Eval("JobFunID").ToString()) %>'></asp:Label>
</ItemTemplate>

功能;&NBSP;
QQ我:


下载MSDN桌面工具(Vista,Win7)


我的博客园

慈善点击,点击此处

   QQ我:
下载MSDN桌面工具(Vista,Win7)
我的博客园
慈善点击,点击此处


这篇关于GridView相关数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆