获取 Label 上所有已传输的 RadListBox 项目并使用 RadListBox_items, ID 绑定 RadGrid

Get all the transferred RadListBox items on Label & bind a RadGrid using RadListBox_items, ID

1.) 我正在使用下面的代码将项目从一个 RadListBox 转移到另一个

HTML代码:

A<telerik:RadListBox ID="RadListBox1" runat="server" Width="250px" Height="200px" 
 TransferMode="Move" AllowTransfer="True" TransferToID="rlbGI_BU" SelectionMode="Multiple"
 OnTransferred="RadListBox1_Transferred" 
 AutoPostBackOnTransfer="true">
</telerik:RadListBox>
B<telerik:RadListBox ID="RadListBox2" runat="server" Width="250px" Height="200px"
 EnableEmbeddedSkins="False" Skin="MetroRed" ImagesPath="../App_Themes/MetroRed/ListBox"
 OnInserted="RadListBox2_Inserted" SelectionMode="Multiple"
 OnDeleted="RadListBox2_Deleted" AutoPostBackOnDelete="true">
</telerik:RadListBox>
<br />
<asp:Label runat="server" ID="lblDeletedList2"></asp:Label> &nbsp; &nbsp;
<asp:Label runat="server" ID="lblInsertedList2"></asp:Label> &nbsp; &nbsp;
<asp:Label runat="server" ID="lblTransdList1"></asp:Label> &nbsp; &nbsp;

C#代码:

private string _SPID = null;
private DataTable _dtSPBU = null;

protected void Page_Load(object sender, EventArgs e)
{
    _SPID = Request.QueryString["SPID"];
    if (!string.IsNullOrEmpty(_SPID))
    {
        _dtSPBU = SDM.SPBU.GetSPBUBySPBUfoSPID(_SPID);
    }
}

protected void bind_RadListBox1()
{
    RadListBox1.DataTextField = "BUName";
    RadListBox1.DataValueField = "SPBUfoBUID";
    RadListBox1.DataSource = _dtSPBU;
    RadListBox1.DataBind();
}

protected void RadListBox2_Inserted(object sender, RadListBoxEventArgs e)
{
    ArrayList myTest = new ArrayList();
    //StringBuilder s = new StringBuilder();
    for (int i = 0; i < e.Items.Count; i++)
    {
        myTest.Add(rlbGI_BU.Items[i].Text);

        foreach (string x in myTest)
        {
                lblInsertedList2.Text += x + ", " + "&nbsp;";
        }
    } 
}

protected void RadListBox2_Deleted(object sender, RadListBoxEventArgs e)
{
    lblDeletedList2.Text += e.Items.Count.ToString() + " items are deleted";
}

protected void RadListBox1_Transferred(object sender, RadListBoxTransferredEventArgs e)
{       
    lblTransdList1.Text += e.Items.Count.ToString() + " items are transferred";
}

我想在 Label 控件(例如 lblInsertedList2 标签)中获取从 RadListBox1RadListBox2 的传输项,因为稍后我必须绑定一个 RadGrid 基于 RadListBox2 中的项目。
为此,我创建了 RadListBox2_Inserted 事件,在该事件中我试图在标签中获取 RadListBox2 的项目。
现在,当我将 RadListBox1 的 1 个以上项目传输到 RadListBox2(使用 ctrl 按钮)时,第一个选定的项目将重复。

示例: RadListBox1 有 "a"、"b"、"c" 项。 当我将所有 "a"、"b"、"c" 从 RadListBox1 转移到 RadListBox2(使用 ctrl 按钮)

我看到以下输出:a a b a b c

正确的输出应该是:a b c

请检查以下快照以了解上述问题: 同样,RadListBox1 有 "a"、"b"、"c" 项 当我将项目 1 个 1 个地从 RadListBox1 转移到 RadListBox2

示例: 当我只传输 a 时,我看到以下输出:a(第一次) 当我只传输 b 时,我看到以下输出:a,a(第二次) 当我只传输 c 时,我看到以下输出:a, a, a (3rd time)

请检查以下快照以了解上述问题:
2.) 我想绑定 RadGrid 使用:

现在我只使用 Request.QueryString["SPID"] 绑定 RadGrid,所以我得到了与 "SPID"

相关的所有数据

示例:

SPID     RadListBox1_Items     Value

014     a           test1

014     b           test2

014     c           test3

我的要求是: 如果假设在 RadListBox2 中只有 2 个项目 "a" , "c" 那么 RadGrid 中的数据应根据 RadListBox2 项目和 "SPID"

进行绑定

SPID     RadListBox2_Items     Value

014     a           test1

014     c           test3

我希望我把我的要求说清楚了。如果有任何混淆,请告诉我。请对这两点进行回复。
提前致谢。

我认为下面的代码可以满足您的要求

protected void RadListBox2_Inserted(object sender, RadListBoxEventArgs e)
{
    ArrayList myTest = new ArrayList();
    //StringBuilder s = new StringBuilder();
    for (int i = 0; i < e.Items.Count; i++)
    {
        myTest.Add(e.Items[i].Text);    

    } 
     foreach (string x in myTest)
        {
                lblInsertedList2.Text += x + ", " + "&nbsp;";
        }
}

或者干脆

protected void RadListBox2_Inserted(object sender, RadListBoxEventArgs e)
{
    for (int i = 0; i < e.Items.Count; i++)
    {
        lblInsertedList2.Text += e.Items[i].Text + ", " + "&nbsp;";
    } 

}

希望对您有所帮助...