我正在使用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事件?
感谢。
答案 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