1

如何RadToolbarDropDown在代码隐藏文件中获取所选项目的值。就我而言,我有一个 RadToolBar,我在其中动态创建RadToolBarDropDown. 正如我的代码所示,我动态设置了这些下拉值和文本。

RadToolBarDropDown dd = new RadToolBarDropDown();
if (ds.HasRows())
        {
            DataTable dt = ds.Tables[0];
            foreach (DataRow row in dt.Rows)
            {
                RadToolBarButton rtb = new RadToolBarButton();
                rtb.Text = row["Description"].ToString();
                rtb.Value = row["ProblemStatusID"].ToString();
                rtb.CommandName = "StatusChange";
                rtb.CommandArgument = row["ProblemStatusID"].ToString();
                dd.Buttons.Add(rtb);
            }
        }
        RadToolBarItem item = dd;
        mlmToolBar.Items.Add(item);

现在,当命令名称“StatusChange”触发时,我想在 cs 中获取所选项目的值。我想获得下拉菜单的点击值。如何获得点击的下拉值?

4

1 回答 1

0

有两种方法可以处理下拉项的按钮单击事件。您可以在服务器端处理它,也可以在客户端处理它。让我们一一来看:

服务器端:

假设我的页面上有一个 rad 工具栏控件。这是相同的代码:

    <telerik:RadToolBar runat="server" ID="rtlMyToolBar" 
OnButtonClick="rtlMyToolBar_ButtonClick" ></telerik:RadToolBar>

请注意,我已经处理了 OnButtonClick 事件。我们接下来会看看它。

从后面的代码中,我添加了一个下拉控件并将按钮添加到下拉列表中。这是相同的代码:

RadToolBarDropDown dd = new RadToolBarDropDown("Drop Down - Handled Server Side");

        RadToolBarButton rtb = new RadToolBarButton();
        rtb.Text = "Bold";
        rtb.Value = "Bold";
        rtb.CommandName = "Bold";
        rtb.CommandArgument = "Bold";
        dd.Buttons.Add(rtb);

        rtb = new RadToolBarButton();
        rtb.Text = "Italic";
        rtb.Value = "Italic";
        rtb.CommandName = "Italic";
        rtb.CommandArgument = "Italic";
        dd.Buttons.Add(rtb);

        rtb = new RadToolBarButton();
        rtb.Text = "Underline";
        rtb.Value = "Underline";
        rtb.CommandName = "Underline";
        rtb.CommandArgument = "Underline";
        dd.Buttons.Add(rtb);

        rtlMyToolBar.Items.Add(dd as RadToolBarItem);

现在让我们看一下事件处理程序:

protected void rtlMyToolBar_ButtonClick(object sender, RadToolBarEventArgs e)
    {
        var toolBarButton = e.Item as RadToolBarButton;
        string commandName = toolBarButton.CommandName;
        if (commandName == "YourCommandName")
        {
            //Your logic
        }
    }

客户端:

现在让我们看看如何监听客户端的下拉按钮点击。以下是 rad 工具栏的代码片段:

    <telerik:RadToolBar runat="server" ID="rtlMyToolBar2"
 OnClientButtonClicked="OnClientButtonClicked"></telerik:RadToolBar>

请注意,现在我正在监听 OnClientButtonClicked 事件。事件处理程序是一个 javascript 函数引用。

这是javascript代码:

<script>
            function OnClientButtonClicked(sender, args) {
                $("#status").append("OnClientButtonClicked: " + args.get_item().get_text() + 
                " - Command Name: "  + 
                args.get_item().get_commandName()  + "<br/>");
            }

        </script>

所有 Telerik 控件都有丰富一致的客户端和服务器端 API。

这是上述代码的 GIST 链接:https ://gist.github.com/lohithgn/5329716

这是一个在我们的现场演示站点中展示客户端 api 的示例:http: //demos.telerik.com/aspnet-ajax/toolbar/examples/clientside/clientevents/defaultcs.aspx

这是客户端 API 基础帮助文档: http ://www.telerik.com/help/aspnet-ajax/toolbar-clientsidetoolbaritem.html

谢谢

于 2013-04-07T09:33:05.330 回答