看博客园里的前辈们都在研究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) 在后台就可以取到值了 |