C# GridView ASP/C的单元格/列中的映射值
我在ASP/C中有一个GridView,里面充满了来自SQL数据源的数据。某些列包含一个ID整数,其中每个列都有不同的映射。我想显示映射值,而不是整数。例如,GridView中的第一列显示的1、2、3、4与DB中的显示完全相同。但是,我想根据映射将其显示为字符串:C# GridView ASP/C的单元格/列中的映射值,c#,sql,asp.net,gridview,C#,Sql,Asp.net,Gridview,我在ASP/C中有一个GridView,里面充满了来自SQL数据源的数据。某些列包含一个ID整数,其中每个列都有不同的映射。我想显示映射值,而不是整数。例如,GridView中的第一列显示的1、2、3、4与DB中的显示完全相同。但是,我想根据映射将其显示为字符串: 1 = Cash 2 = Money Transfer 3 = Visa 4 = etc 如何在不涉及select语句中的大小写功能的情况下从C执行此操作?您是否有一个与当前正在检索的属性相对应的模型属性 例如,如果此属性称为Pay
1 = Cash
2 = Money Transfer
3 = Visa
4 = etc
如何在不涉及select语句中的大小写功能的情况下从C执行此操作?您是否有一个与当前正在检索的属性相对应的模型属性 例如,如果此属性称为PaymentOptionID,则应该有一个对应的字符串来保存PaymentOptionDescription。然后,当您从数据库返回记录集时,将gridview的列指定为string属性。示例如下: 模型 DB Select语句 控制器方法 看法
如果映射存储在数据库中,则可以在查询中使用内部联接来获取映射值 例如,如果您有一个Orders表,其中包含OrderID、ClientID、Price和PaymentTypeID字段: 包含ClientID和ClientName字段的Clients表: 以及PaymentType表,其中包含PaymentTypeID和Description字段: 然后查询可能如下所示:
SELECT
O.*,
C.ClientName,
PT.Description AS PaymentDescription
FROM
Orders O
INNER JOIN Clients C ON C.ClientID = O.ClientID
INNER JOIN PaymentType PT ON PT.PaymentTypeID = O.PaymentTypeID
gvOrders.DataKeys[rowIndex].Values["PaymentTypeID"]
在GridView中,可以显示Orders表中的一些字段,也可以显示查询返回的ClientName和PaymentDescription字段:
ClientName Price PaymentDescription
Miracle Mart 40.50 Visa
Woolworth 128.43 Cash
ID本身通常不会显示给用户。如果在代码隐藏中进行某些处理时需要它们的值,可以将它们添加到GridView的DataKeyName中:
<asp:GridView ID="gvOrders" DataKeyNames="OrderID,ClientID,PaymentTypeID" ... >
映射是否在数据库的表中?如果是这样,您可以在查询中使用'INNER JOIN',以获取与每个ID对应的字符串。是。对于大多数映射,我在不同的表中有它们的描述。我该怎么做呢。我不太熟悉sql高级查询。谢谢,谢谢。我在另一个表格中有描述。如果数据绑定在页面加载时完成,我将如何进行映射。
OrderID ClientID Price PaymentTypeID
3 8 40.50 3
4 2 128.43 1
ClientID ClientName
2 Woolworth
3 Dairy Queen
6 Dominion Groceries
8 Miracle Mart
PaymentTypeID Description
1 Cash
2 Money transfer
3 Visa
SELECT
O.*,
C.ClientName,
PT.Description AS PaymentDescription
FROM
Orders O
INNER JOIN Clients C ON C.ClientID = O.ClientID
INNER JOIN PaymentType PT ON PT.PaymentTypeID = O.PaymentTypeID
ClientName Price PaymentDescription
Miracle Mart 40.50 Visa
Woolworth 128.43 Cash
<asp:GridView ID="gvOrders" DataKeyNames="OrderID,ClientID,PaymentTypeID" ... >
gvOrders.DataKeys[rowIndex].Values["PaymentTypeID"]