GridView相关数据 [英] GridView Related Data
问题描述
我的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&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屋!