RadListBox: как отключить перемещение определенного элемента

Как предотвратить конкретный элемент слева направо, используя код на стороне сервера или используя JavaScript на стороне клиента.

Например: если пользователь хочет переместить "Аргентина" слева направо, я хочу предотвратить и показать предупреждающее сообщение "Это невозможно"

       RoleSelectedListBox = new RadListBox();
        RoleSelectedListBox.ID = "RoleSelectedListBox";
        RoleSelectedListBox.TabIndex = 1;
        //RoleSelectedListBox.CssClass = "RoleSelectedListBoxStyle";
        RoleSelectedListBox.SelectionMode = ListBoxSelectionMode.Multiple;
        RoleSelectedListBox.AllowTransfer = true;
        RoleSelectedListBox.TransferToID = "RoleAvailableListBox";
        RoleSelectedListBox.Skin = "FuzeCustom";
        RoleSelectedListBox.EnableEmbeddedSkins = false;
        RoleSelectedListBox.EnableDragAndDrop = true;
        RoleSelectedListBox.EnableMarkMatches = true;
        RoleSelectedListBox.Sort = RadListBoxSort.Ascending;
        RoleSelectedListBox.SortItems(); 

1 ответ

Пожалуйста, попробуйте с приведенным ниже фрагментом кода.

Сторона клиента

JS

<script type="text/javascript">
    function ClientTransferring(sender, args) {

        if (args.get_items().length > 0) {
            for (var i = 0; i < args.get_items().length; i++) {
                if (args.get_items()[i]._element.textContent == "Argentina") {
                    args.set_cancel(true);
                    alert("your message comes here");
                }
            }
        }
    }
</script>

ASPX

<telerik:RadListBox runat="server" ID="RadListBoxSource" Height="200px" Width="230px"
    AllowTransfer="true" TransferToID="RadListBoxDestination" OnClientTransferring="ClientTransferring">
    <Items>
        <telerik:RadListBoxItem Text="Argentina"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="Australia"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="Brazil"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="Canada"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="Chile"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="China"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="Egypt"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="England"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="France"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="Germany"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="India"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="Indonesia"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="Kenya"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="Mexico"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="New Zealand"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="South Africa"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="USA"></telerik:RadListBoxItem>
    </Items>
</telerik:RadListBox>
<telerik:RadListBox runat="server" ID="RadListBoxDestination" Height="200px" Width="200px">
</telerik:RadListBox>

Сторона сервера

ASPX

<telerik:RadListBox runat="server" ID="RadListBoxSource" Height="200px" Width="230px"
    AllowTransfer="true" TransferToID="RadListBoxDestination" AutoPostBackOnTransfer="true"
        OnTransferring="RadListBoxSource_Transferring">
    <Items>
        <telerik:RadListBoxItem Text="Argentina"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="Australia"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="Brazil"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="Canada"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="Chile"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="China"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="Egypt"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="England"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="France"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="Germany"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="India"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="Indonesia"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="Kenya"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="Mexico"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="New Zealand"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="South Africa"></telerik:RadListBoxItem>
        <telerik:RadListBoxItem Text="USA"></telerik:RadListBoxItem>
    </Items>
</telerik:RadListBox>
<telerik:RadListBox runat="server" ID="RadListBoxDestination" Height="200px" Width="200px">
</telerik:RadListBox>

ASPX.CS

protected void RadListBoxSource_Transferring(object sender, RadListBoxTransferringEventArgs e)
{
    if (e.Items.Count > 0)
    {
        foreach (RadListBoxItem item in e.Items)
        {
            if (item.Text == "Argentina")
            {
                e.Cancel = true;
                //show your message from here
            }
        }
    }
}
Другие вопросы по тегам