У меня есть вопрос:Получить значение из базы данных relationed
У меня есть две таблицы MSSQL, элементы и состояния, которые связаны друг с другом через stateid:
STATES ITEMS
------------- ---------------------------
| id | name | | id | name | ... | stateid
V ^
|_____________________________________|
Так Items.StateID связан с государством .Я БЫ. В моей текущей ситуации у меня есть GridView, который привязывается к LinqDataSource, который ссылается на таблицу Items. GridView имеет два столбца, один - Name, а другой - StateID. Я хочу, чтобы вытащить имя состояния, связанного с идентификатором состояния, из таблицы состояний, чтобы оно отображалось вместо идентификатора состояния.
Заранее благодарен!
EDIT
Вот сетка/DataSource:
<asp:LinqDataSource ID="ItemViewDataSource" runat="server" ContextTypeName="GSFyi.GSFyiDataClassesDataContext" EnableDelete="true" TableName="FYI_Items" />
<h2 class="gridTitle">All Items</h2>
<telerik:RadGrid ID="ItemViewRadGrid" runat="server" AutoGenerateColumns="False" DataSourceID="ItemViewDataSource" GridLines="None" AllowAutomaticDeletes="True" EnableEmbeddedSkins="False" OnItemDataBound="itemsGrid_ItemDataBound">
<HeaderContextMenu>
<CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation>
</HeaderContextMenu>
<MasterTableView DataKeyNames="id" DataSourceID="ItemViewDataSource" CommandItemDisplay="None" CssClass="listItems" Width="98%">
<RowIndicatorColumn>
<HeaderStyle Width="20px" />
</RowIndicatorColumn>
<ExpandCollapseColumn>
<HeaderStyle Width="20px" />
</ExpandCollapseColumn>
<Columns>
<telerik:GridTemplateColumn ItemStyle-CssClass="gridActions edit" UniqueName="Edit">
<ItemTemplate>
<asp:HyperLink ID="edit" runat="server" Text="Edit"></asp:HyperLink>
</ItemTemplate>
<ItemStyle CssClass="gridActions edit"></ItemStyle>
</telerik:GridTemplateColumn>
<telerik:GridButtonColumn ConfirmText="Are you sure you want to delete this item?" ConfirmDialogType="RadWindow" ButtonType="LinkButton" ItemStyle-CssClass="gridActions delete" CommandName="Delete" >
<ItemStyle CssClass="gridActions delete"></ItemStyle>
</telerik:GridButtonColumn>
<telerik:GridBoundColumn DataField="name" HeaderText="Item Name" SortExpression="name"
UniqueName="name">
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn HeaderText="State" UniqueName="state">
<ItemTemplate>
<asp:Label ID="stateLbl" runat="server" Text='<%# Eval("stateid") %>' />
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
</telerik:RadGrid>
И текущий код-за:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Cms.Web.UI;
using Telerik.Web.UI;
public partial class Custom_Modules_GSFyi_Backend_Views_ItemsListView : ViewModeUserControl<ItemsView>
{
protected void Page_Load(object sender, EventArgs e)
{
addNewItem.NavigateUrl = CreateHostViewCommand("ItemsInsertView",null,null);
}
protected void itemsGrid_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
if (e.Item.ItemType == GridItemType.Item || e.Item.ItemType == GridItemType.AlternatingItem)
{
var item = (GSFyi.FYI_Item)e.Item.DataItem;
HyperLink edit = (HyperLink)e.Item.FindControl("edit");
edit.NavigateUrl = CreateHostViewCommand("ItemsEditView", item.id.ToString(), null);
}
}
}
ли эта помощь на всех?
Можете ли вы рассказать о первой части своего сообщения? Я не уверен, что вы имеете в виду, имея точку LinqDataSource в объекте моего элемента. Спасибо! – Anders
Я просто хочу сказать, что ваш LINQDataSource указывает на таблицу элементов. Я обновил свой ответ, чтобы показать пример. Код, который вы указали, выглядит так, как будто вы правильно настроили его. – joshb
Хорошо, спасибо. Я понял :) – Anders