2010-09-13 6 views
0

Прямо сейчас у меня есть RadToolTip внутри RadGrid. RadGrid отображает поле из источника данных под названием «Значение». На RadToolTip отображается то же самое.Telerik RadGrid внутри ToolTip внутри RadGrid

Я хочу добавить еще один RadGrid внутри RadToolTip. Функция, устанавливающая источник данных этой второй RadGrid, должна принимать значение «Значение» в качестве параметра?

Как это сделать?

Вот что у меня есть.

<h2>Currently Assigned Tags</h2> 

<telerik:RadGrid runat="server" ID="grdTags" OnNeedDataSource="grdTags_NeedDataSource" AllowMultiRowSelection="true" 
    AutoGenerateColumns="false" OnDeleteCommand="DeleteTag" Skin="CiscoGreen" EnableEmbeddedSkins="false"> 
    <ClientSettings> 
     <Selecting AllowRowSelect="true" /> 
    </ClientSettings> 
    <MasterTableView DataKeyNames="KeywordID"> 

     <Columns> 

      <telerik:GridButtonColumn ButtonType="LinkButton" Text="Delete" CommandName="Delete" /> 
      <telerik:GridBoundColumn Visible="false" DataField="KeywordID" /> 
      <telerik:GridBoundColumn HeaderText="Value" DataField="Value" /> 

      <telerik:GridTemplateColumn UniqueName="ToolTip"> 
       <HeaderTemplate> 
        Related Campaigns 
       </HeaderTemplate> 
       <ItemTemplate> 
        <asp:Label runat="server" ID="TargetLabel" Text='<%# DataBinder.Eval(Container.DataItem, "Value") %>' /> 
        <telerik:RadToolTip ID="ttRelatedCampaigns" runat="server" Width="300px" Height="300px" TargetControlID="TargetLabel"> 
         <%# DataBinder.Eval(Container.DataItem, "Value") %> 
         <telerik:RadGrid ID="grdRelatedCampaigns" runat="server" OnNeedDataSource='<%# DataBinder.Eval(Container.DataItem, "Value") %>' AutoGenerateColumns="false" 
          Skin="CiscoGreen" EnableEmbeddedSkins="false"> 
          <MasterTableView DataKeyNames="InitiativeName"> 
           <Columns> 
            <telerik:GridBoundColumn HeaderText="Campaign Name" DataField="Value" /> 
           </Columns> 
          </MasterTableView>  
         </telerik:RadGrid> 
        </telerik:RadToolTip> 
       </ItemTemplate> 
      </telerik:GridTemplateColumn> 

     </Columns> 

    </MasterTableView>     
</telerik:RadGrid> 

ответ

0

Этот синтаксис не подходит для обработчика NeedDataSource внутренней сетке, если только вы не хотите, чтобы имя обработчика, чтобы соответствовать значение Значение свойства:

OnNeedDataSource='<%# DataBinder.Eval(Container.DataItem, "Value") %>' 

Вместо внутри вложенной сетки обработчик NeedDataSource в коде -behind вы можете ссылаться на значение с тем же синтаксисом:

string val = DataBinder.Eval(Container.DataItem, "Value").ToString(); 

, а затем фильтр источника на основе заданного значения.

+0

Хмм, я не уверен, что я понимаю ваш ответ. Но я попробую ... Спасибо! – lowerkey

+0

Объект DataBinder, похоже, не доступен для кода. Eval существует, но intellisense не распознает Container. Есть ли другой способ добраться до данных, возможно, через eventarg? – lowerkey

+0

Извините, мне плохо, на самом деле это должно быть: string val = DataBinder.Eval (e.Item.DataItem, «Value»). ToString(); –

Смежные вопросы