Как связать Telerik GridBoundColumn с узлом столбца SQL Server SQL Server 2008, используя linq to sql - PullRequest
1 голос
/ 06 августа 2011

Я связываю radgrid с помощью linq-to-sql, я связываю gird с помощью этого (потому что я буду выполнять CRUD):

protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)               {                         
RadGrid1.DataSource = DbContext.SucursalClienteProveedores;  
}

В моей БД я получил столбец с именем Contact, это тип данных Xml и выглядит следующим образом:

<contacto>
<nombre>Andrés Gutiérrez Hernández</nombre>
<cargo>CEO</cargo>
<telefono1>53-93-75-74</telefono1>
<telefono2>044-55-39-40-96-59</telefono2>
<email>gutierrez.andres@comprobantes.mx</email>
</contacto>

Строки выглядят так:

FIN020938SVR | 123 | FEAR3434 | Холли Молли | | 43 | Андрес Гутьеррес HernándezCEO53-93-75-74044-55-39-40-96-59gutierrez.andres@comprobantes.mx|0 | 08.02.2011, 12:00:00 утра.

Я пытаюсь привязать GridBoundColumn к узлу telefono1, на конструкторе я сделал следующее:

 <telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="False"
        CellSpacing="0" GridLines="None" ondeletecommand="RadGrid1_DeleteCommand"
        oninsertcommand="RadGrid1_InsertCommand" onitemcreated="RadGrid1_ItemCreated"
        onneeddatasource="RadGrid1_NeedDataSource"
        onupdatecommand="RadGrid1_UpdateCommand">
<MasterTableView  DataKeyNames="RFC,IDSucursal" CommandItemDisplay="Top" InsertItemPageIndexAction="ShowItemOnCurrentPage">
Columns>
        <telerik:GridBoundColumn  HeaderText="RFC" UniqueName="RFC" DataField="RFCCP">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn HeaderText="Alias" UniqueName="Alias" DataField="NombreComercial">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn HeaderText="Razon Social" UniqueName="razon_social" DataField="RazonSocial">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn HeaderText="TEL" UniqueName="Tel" DataField="Contacto.telefono1" >
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn HeaderText="Email" UniqueName="Email" >
        </telerik:GridBoundColumn>
    </Columns>
         </MasterTableView>
         </telerik:RadGrid>

Конечно, столбец TEL не получает никаких значений, я мог бы создать запрос linq и вернуть интерфейс IEnumerable, но мне было интересно, есть ли простой способ для этого,

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 01 июня 2012

Я думаю, вам нужно что-то вроде этого выше MasterTableView

    <telerik:RadAjaxManagerProxy runat="server" ID="RadAjaxManagerProxy1">
          <AjaxSettings>
         <telerik:AjaxSetting AjaxControlID="btnAddCustomer">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="RadAjaxPanel1" />
            </UpdatedControls>
          </AjaxSettings>
   </telerik:RadAjaxManagerProxy>

И RadGrid должен быть следующим:

    <telerik:RadGrid ID="rgLeads" runat="server" Skin="Vista" Width="100%" AllowPaging="true" PageSize="5" AllowCustomPaging="true">

И в коде позади

    rgLeads.VirtualItemCount = 'stored proc here
    rgLeads.Rebind()
0 голосов
/ 06 августа 2011

Я не знаю, похоже ли это на обычную навигацию XPATH, но вы можете попробовать:

DataField="Contacto/telefono1"
...