看博客園裡的前輩們都在研究MOSS我也來湊個熱鬧
今天我也為ListView添加CheckBox欄和前輩們的做法可能略有不同但是應該大同小異
首先寫一個WINFORM放一個BUTTON在單擊事件裡面加入代碼string xml = <Field Type=Computed ReadOnly=TRUE Name=ListItemSelection DisplayName=Selector Sortable=FALSE Filterable=FALSE EnableLookup=FALSE SourceID= StaticName=ListItemSelection><FieldRefs><FieldRef Name=ID /></FieldRefs><DisplayPattern><HTML><![CDATA[<input type=checkbox name=docchk onclick=setValue() ]]></HTML><HTML><![CDATA[LItemId=]]></HTML><Column Name=ID HTMLEncode=TRUE /><HTML><![CDATA[/> ]]></HTML></DisplayPattern></Field>SPSite site = new SPSite(//qdoffice)SPWeb web = siteOpenWeb(koniambo)SPList list = webLists[技術性文件]listFieldsAddFieldAsXml(xml)通過上面的代碼可以將在LIST中創建一個SPField注意兩個要點其中定義了CheckBox的HTML樣式並在CheckBox的單擊事件中加入Onclick = setValue() 注意給CheckBox增加NAME屬性以便後面可以通過JS對其進行取值這裡面我將它的NAME屬性設成docchk接下來使用SPD打開頁面在<aspContent ContentPlaceHolderId=PlaceHolderMain>後面增加一個<Input type=hidden value= name=dochid>然後將下面的這段JS放到頁面可以引用的任意位置通過Link或是直接嵌入到頁面裡都可以
function getCheckboxValue(name)
{ var str = var theEle = documentgetElementsByName(name)for(var i=i<theElelengthi++)
{ if(theEle[i]checked == true)
{ str += theEle[i]LItemId + } str = strsubstr(strlength)return str} function el(name)
{ var elel = documentgetElementById(name)return el} function setValue()
{ var count = documentgetElementsByName(docchk)lengthvar number =
var strValue=var arrayCheckbox = new Array(count)for(i=i<counti++)
{ arrayCheckbox[i] = eval(documentall(docchk)[+i+])if(arrayCheckbox[i]checked==true)
{ ++numberstrValue+=arrayCheckbox[i]LItemId+ } documentgetElementsByName(dochid)[]value=strValuesubstr(strValuelength)}這樣的話你在點周CheckBo的話就可以通過SetValues方法向dochid域中寫值了(值為用逗號隔開的ListItemID)
在後台就可以取到值了
From:http://tw.wingwit.com/Article/program/net/201311/12565.html