cara Menghapus item duplikat di asp:dropdownlist, Sharepoint Designer 2013

Saya telah menggunakan asp:drowdownlist di dataviewwebpart dan diikat dengan sumber spdatasource1. Ini memiliki beberapa item duplikat. Bagaimana saya bisa menghapus item duplikat itu

asp:DropDownList runat="server" id="DropDownList1" DataValueField="ID" DataTextField="ProgramMaster" DataSourceID="spdatasource1" AutoPostBack="False" AppendDataBoundItems="True" ToolTip="Select a Program from the list"/>

Juga, Ini menunjukkan item dalam ID formasi berikut;#NamaProgram. Bagaimana saya bisa mendapatkan programName saja.


person Ryan Koir    schedule 07.04.2014    source sumber


Jawaban (2)


Saya menggunakan JQuery untuk menghapus item duplikat dari asp:dropdownlist dan inilah kodenya jika ada yang membutuhkannya. Kode berfungsi dalam empat bagian, Dapatkan nilai dari Dropdown, hapus Duplikat dan dapatkan nilai dalam bentuk yang dapat digunakan, Hapus nilai yang ada dari Dropdown dan terakhir setel atau tambahkan nilai kembali ke daftar dropdown.

<script type="text/javascript">
$(document).ready(function(){
var handles= [];               
$('#DropDownList1 option').each(function() { 
var Prog1 = $(this).attr('text');
if(Prog1 != 'All'){
var Prog2 = Prog1.split(';#');
handles.push('All');
handles.push(Prog2[1]);
 }
//Remove The existed Dropdownlist value
$("select#DropDownList1 option[value='" + $(this).val() + "']").remove();
//$(this).val().remove();
});
//Removing the Duplicates
var individual = [];
for (var i = 0; i<handles.length; i++) {
if((jQuery.inArray(handles[i], individual )) == -1)
{
individual .push(handles[i]);
} 
 }
//Inserting or setting the value from array individual to the dropdownlist.  
var sel =   document.getElementById('DropDownList1');
for(var i = 0; i < individual.length; i++) {
var opt = document.createElement('option');
opt.innerHTML = individual[i];
opt.value = individual[i];
sel.appendChild(opt);
    }
 });
</script>

P.S jika ID yang diberikan tidak berfungsi dengan baik untuk dropdown, dapatkan ID dari alat debugging IE yang akan berbentuk ctl00_PlaceHolderMain_g_a0a2fb36_2203_4d2e_bcd4_6f42243b880f_DropDownList1

person Ryan Koir    schedule 07.04.2014

Anda dapat melakukan ini dengan jquery

var usedNames = {};
$("select[name='company'] > option").each(function () {
if(usedNames[this.text]) {
    $(this).remove();
} else {
    usedNames[this.text] = this.value;
}
});

atau dengan kode sisi server coba ini

void RemoveDuplicateItems(DropDownList ddl)
{

for (int i = 0; i < ddl.Items.Count; i++)
{

ddl.SelectedIndex = i;
string str = ddl.SelectedItem.ToString();
for (int counter = i + 1; counter < ddl.Items.Count; counter++)
{
ddl.SelectedIndex = counter;
string compareStr = ddl.SelectedItem.ToString();
if (str == compareStr)
 {
  ddl.Items.RemoveAt(counter);
  counter = counter - 1;
 }  


}    }     }
person Richa Jain    schedule 17.04.2014