在定义SharePoint列表的SPD数据视图的时候需要注意的问题
為了開發(fā)的效率我們通常對SharePoint列表的新建、編輯等自帶的ASPX表單進(jìn)行自定義,但在實(shí)際的過程中,老是會出現(xiàn)莫名其妙的錯誤,從而造成開發(fā)有可能無限拖延。
首先,作為開發(fā)者,我們要清楚微軟一貫的行事風(fēng)格,就是一個錯誤往往并不是您的作法不對,而是系統(tǒng)并不完善。
所以,我把多年來的對SharePoint開發(fā)的經(jīng)驗(yàn)寫下來,在SPD中往往對數(shù)據(jù)視圖并不能作太頻繁的改動,往往你對數(shù)據(jù)視圖一個“非DEMO”的操作,就會引發(fā)意想不到的錯誤,從而造成您的開發(fā)時間有可能無限地拖延。
這些錯誤我總結(jié)下來,有如下的原因:
1、頻率地對數(shù)據(jù)更改“新建”、“編輯”的模式, 當(dāng)你插入的數(shù)據(jù)視頻一會從新建表單變成編輯表單,而又往復(fù)時,會造成巨大的災(zāi)難。
2、頻率地對數(shù)據(jù)的呈現(xiàn)模式進(jìn)行更變,如一個字段你感覺默認(rèn)的顯示效果不行進(jìn),您會把它從“列表表單域”-> “文本框”,然后又改回來,這又會造成巨大災(zāi)難。
我們通過分析ASPX文件的代碼,來發(fā)現(xiàn)其中的奧秘:
比如在定義一個新建列表的數(shù)據(jù)視圖時,系統(tǒng)如自動生成在SPD中的如下的定義:
<SharePoint:FormField runat="server" id="ff27{$Pos}" ControlMode="New" FieldName="_x7533__x8bf7__x5173__x95ed_"__designer:bind="{ddwrt:DataBind('i',concat('ff27',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@_x7533__x8bf7__x5173__x95ed_')}" />
?當(dāng)1發(fā)生時,我會發(fā)現(xiàn)在這個字段中的一個屬性 ControlMode 可能會不對,當(dāng)是新建表單時,我們一定要保持這個值等于New,在多次進(jìn)行更改時這個值可能會于我們的表單沖突。
當(dāng)2發(fā)生時,我會發(fā)現(xiàn)往往在_designer:bind,這個屬性中的, ddwrt:DataBind這個方法中的, concat('******',$Pos,這個部分不對,
這個部分應(yīng)該于id屬性相對應(yīng),如果id為*****{$Pos},那么這個部分應(yīng)該就是 conct("*****",$Pos}。
所以在自定義數(shù)據(jù)視圖時,我們要抱定一個理念,SPD只是給我們自動生成代碼的工具,而不是微軟所說的萬能的工具,是充滿BUG的,
千萬不要相信SPD自動生成的代碼,我們可以通過檢查SPD生成的自動代碼,并把它更正,才能高效地利用這個工具。
其實(shí)在SharePont 2013 以后的版本中,就取消了所見即所得的視圖模式了,我想,這可能SPD未來的使命吧,既然自動生成代碼做不好,我們就讓專業(yè)人士去一行一行寫XSL代碼,而非專業(yè)人士,您就用用SharePoint即有的功能。
?
?
?
總結(jié)
以上是生活随笔為你收集整理的在定义SharePoint列表的SPD数据视图的时候需要注意的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android程序开发中关于设置全屏无效
- 下一篇: 水晶报表提示“需要数字字段”