asp.net 获取RadSearchBox的选定值

hgqdbh6s  于 2023-05-19  发布在  .NET
关注(0)|答案(3)|浏览(133)

i绑定一个“RadSearchBox”,其中一个表有两个字段,“id”和“name”。我正在搜索通过名称这是好的,但我想得到选定的名称的ID.我该怎么做?

q7solyqu

q7solyqu1#

在此处查看OnSearch事件:http://demos.telerik.com/aspnet-ajax/searchbox/examples/overview/defaultcs.aspx,因为您可以在那里获取数据项(eventArgs.DataItem)。
当然,您可以将DataValueField属性设置为数据源中所需的字段,并简单地使用e.Value属性。

kiz8lqtg

kiz8lqtg2#

设置DataValueField为ID,DataTextField为name,
并在OnSearch事件中访问。就是这样

fnx2tebb

fnx2tebb3#

另一种方法是附加到搜索框的OnClientSearch客户端事件,并在隐藏字段的帮助下将args.get_value()和args.get_text()值传递给服务器:
ASPX

<asp:Button Text="Get Value" OnClick="Get_Value_Click" runat="server" />
    <asp:HiddenField id="hiddenField1" runat="server" />
    <script>    
        function OnClientSearch(sender, args) {
            var text = args.get_text();
            var value = args.get_value();
            concatenatedValues = text + "|" + value;
            var hiddenField = $get("hiddenField1");
            hiddenField.value = concatenatedValues;
        }
    </script>

Codebehind

public RadSearchBox searchBox;
protected void Page_Load(object sender, EventArgs e)
{

    searchBox = new RadSearchBox();
    searchBox.OnClientSearch = "OnClientSearch";
    searchBox.DataValueField = "ID";
    searchBox.DataTextField = "Name";
    searchBox.DataSource = GetSearchBoxData();
    searchBox.DataBind();

    Form.Controls.Add(searchBox);
}

protected void Get_Value_Click(object sender, EventArgs e)
{
    string[] values = hiddenField1.Value.Split('|');
    string text = values[0];
    string value = values[1];
    Response.Write("SearchBox text from hiddenField: " + text + "<br/>");
    Response.Write("SearchBox value from hiddenField: " + value + "<br/>");
}

public DataTable GetSearchBoxData()
{
    DataTable dt = new DataTable();
    dt.Columns.Add("ID", typeof(int));
    dt.Columns.Add("Name", typeof(string));

    dt.Rows.Add(1, "John");
    dt.Rows.Add(2, "Mary");
    dt.Rows.Add(3, "David");

    return dt;
}

相关问题