2014-04-07 2 views
0

나는 dataviewwebpart에서 asp : drowdownlist를 사용했으며 소스 spdatasource1과 바인딩됩니다. 중복 된 항목이 여러 개 있습니다. 나는 그 중복 항목 또한asp : dropdownlist, Sharepoint Designer 2013에서 중복 항목을 삭제하는 방법

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

을 삭제할 수 있습니다 방법은 형성 ID를 다음의 항목을 보이고있다; #ProgramName을. programName 만 얻으려면 어떻게해야합니까?

답변

0

글쎄, JQuery를 사용하여 asp : dropdownlist에서 중복 항목을 제거했다. 여기에 코드가있어 누군가가 필요할 수도있다. 코드는 Dropdown에서 값 가져 오기, 중복을 제거하고 사용 가능한 형식으로 값 가져 오기, 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> 

PS 형태로 ctl00_PlaceHolderMain_g_a0a2fb36_2203_4d2e_bcd4_6f42243b880f_DropDownList1

될 것 IE 디버깅 도구에서 ID를 얻을, 드롭 다운을 위해 잘 작동하지 않았다 주어진 ID는
0

당신이 JQuery와

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

이 할 수있는 경우 또는 서버 측 코드로 시도해보십시오

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; 
} 


} }  } 
관련 문제