Telerik RadPanelBar

时间:2009-12-29 21:44:31

标签: asp.net telerik

我正在使用Telerik RadPanelBar和XML文件来处理面板项目。有人可以帮我为PanelItem的XML格式吗?我想在XML文件中包含OnClick事件。可能吗?如果是,请告诉我XML标签。我使用的格式如下:

<PanelItem ToolTip="" Height="22" ID="Panel3_1" Text="Search" NavigateUrl = "#"  ImageCollapsed="/_Common/Images/bullet.gif" ImageExpanded="/_Common/Images/bullet.gif" />

我的问题是,如何捕获PanelItem的OnClick事件?

感谢。

3 个答案:

答案 0 :(得分:1)

控件似乎公开了一个'OnClientItemClicked'事件处理程序,可以像这样实现:

 <script>                     
   function OnClientItemClicked(sender, args)
   {
      alert("The " + args.get_item().get_text() + " item has been clicked");
   }            
</script>
<telerik:RadPanelBar ID="RadPanelBar1" runat="server" OnClientItemClicked="OnClientItemClicked" >
 ...
</telerik:RadPanelBar> 

至于在XML中存储onClick事件,您可能希望获得一点创意。您可以存储自定义属性,然后可以在OnClientItemClicked事件中检索,而不是存储onClick事件:

 <script>                     
   function OnClientItemClicked(sender, args)
   {
      var item = args.get_item();
      var myCustomAttribute = item.get_attributes().getAttribute("myCustomAttribute");
   }            
</script>

...如果您的XML结构如下:

<Item Text="Products" Expanded="True" myCustomAttribute="1">
 <Item Text="RadEditor" myCustomAttribute="2" />
 <Item Text="RadPanelBar" myCustomAttribute="3" />
 <Item Text="RadMenu" myCustomAttribute="4" />
 <Item Text="RadTabStrip" myCustomAttribute="5" />
</Item>

此外,这里是Telerik的(真棒)文档: http://www.telerik.com/help/aspnet-ajax/panel_clientsidebasics.html

我希望我回答你的问题!干杯:D

答案 1 :(得分:1)

我不相信每个特定的面板栏项都可以有单独的OnClick事件。相反,您需要为整个PanelBar定义一个OnItemClick服务器端事件,然后在那个事件中,您可以根据该项值执行您需要的任何操作吗?

例如声明:

<telerik:RadPanelBar ID="RadPanelBar1" runat="server" OnItemClick="RadPanelBar1_ItemClick">
 ...
</telerik:RadPanelBar> 

背后的代码

protected void RadPanelBar1_ItemClick(object  sender, RadPanelBarEventArgs e)
{
   RadPanelItem ItemClicked = e.Item;
   Response.Write("Server event raised -- you clicked: " + ItemClicked.Value);
} 

答案 2 :(得分:1)

对于XML格式 - 请查看此帮助主题 http://www.telerik.com/help/aspnet-ajax/panel_datahierarchicaldatasourcecomponents.html

Sean是对的 - 你可以定义一个全局的ItemClick服务器事件,它将触发所有的panelbar项目。更多信息请点击这里: http://www.telerik.com/help/aspnet-ajax/panel_panel_itemclick.html