6

SharePoint Designer を使用して、asp サーバー コントロールを SharePoint XSLT に追加しています。フォームに値を事前入力したり、SharePoint で定義されたレイアウト (隠しフィールドなど) とは異なるエクスペリエンスを提供したりするのに非常に便利であることがわかりました。

たとえば、次のように定義すると、SharePoint:FormField コントロールの代わりに asp:TextBox コントロールを使用できます。

<xsl:stylesheet ... xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime">
   <xsl:param name="Name" />

   <xsl:template match="/">
       <!-- omitted for clarity -->

       <asp:TextBox id="txtName" runat="server" Text="{$Name}"
         __designer:bind="{ddwrt:DataBind('i','txtName','Text','TextChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@MySharePointField')}"

   </xsl:template>
</xsl:stylesheet>

Googleで検索しましたが、 DDWRT:DataBindメソッドのパラメーターの適切な参照を見つけることができないようです。

誰か知っていますか?

4

1 に答える 1

6

ddwrt:DataBind メソッドは、DataFormWebPart.AddDataBindingのラッパーです。

不思議な最初のパラメーターは「操作」を指します。"i" (挿入)、"u" (更新)、または "d" (削除) のいずれかになります。残念ながら、XSLT は列挙型などにアクセスできないため、これらはリテラル値です。

その他の興味深いフィールドは、バインドしているコントロールのメンバーである propertyName と eventName です。イベントは、SharePoint フォームへのリフレクションを使用して接続され、プロパティを使用して値を取得します。

残りのフィールドは、バインドする主キーと値を参照します。

メソッド シグネチャとその使用方法の詳細については、こちらを参照してください。

于 2009-09-23T13:32:58.113 に答える