2010-09-13 86 views
0

現在我有一個RadToolTip裏面的RadGrid。 RadGrid從數據源中顯示一個名爲「Value」的字段。 RadToolTip顯示相同的東西。Telerik RadGrid裏面的工具提示裏面的RadGrid

我想在RadToolTip中添加另一個RadGrid。設置第二個RadGrid的數據源的函數應該將「Value」作爲參數?

我該怎麼做?

這是我到目前爲止。 NeedDataSource處理程序中的代碼

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

代替嵌套網格內:

<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

這句法,除非你想處理程序相匹配的Value屬性值的名稱是不適合內網的NeedDataSource處理程序 - 您可以使用相同的語法引用Value:

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

然後根據給定值過濾源。

+0

嗯,我不知道我理解你的答案。但我會試一試...謝謝! – lowerkey 2010-09-14 21:05:44

+0

DataBinder對象在代碼隱藏中似乎不可用。 Eval存在,但智能感知不識別Container。有沒有另外一種方法可以通過eventarg獲取數據? – lowerkey 2010-09-14 22:21:48

+0

對不起,我的壞,它實際上應該是︰string val = DataBinder.Eval(e.Item.DataItem,「Value」)。ToString(); – 2010-09-15 08:27:41