2012-02-17 60 views
3

我忙於學習Umbraco,但在互聯網上沒有看到任何告訴我Umbraco是否允許使用連接到SQL Server數據庫的C#代碼創建自定義ASP.NET窗體的任何內容。Umbraco限制中的自定義窗體?

如果我需要在ASP.NET中創建這樣一個自定義窗體並將其帶入Umbraco,那麼我會對Umbraco有任何問題嗎?

回答

0

通過創建一個asp.net自定義控件,然後將其添加到系統中,您可以在4.7版本(及更早版本)中完成此操作 - 它非常容易完成。

在V5中,您無法創建自定義控件,因爲它現在是基於MVC的,而且隨着我剛剛在v5上加快速度,無法評論它有多麼困難/不同。

您使用的是哪個版本?

1

另一個快速且便宜的選項是使用Contour Forms包。它的價格約爲99歐元,並提供一個所見即所得的界面來創建表單。它具有工作流程和將值存儲在自定義表格中的功能。

我們非常喜歡它,它適用於您需要表格的情況下可能有75% - 80%的情況。

http://umbraco.com/products/more-add-ons/contour.aspx

+0

輪廓是可以自定義的自定義HTML表單,不是那種形式的海報指的是真正的好。 – rob 2013-09-19 13:14:53

+0

那麼,它的WebForms並支持從SQL數據庫表生成。因此,它確實做到了他所要求的所有事情,並且可能以更簡單,更經受考驗和可持續的方式進行。我認爲這是一個有效的選擇,取決於他的需求的細節。 – BeaverProj 2013-09-19 18:30:03

3

有兩種方式(即我所知道的,至少),您可以在一把umbraco實現自定義.NET的形式(版本4.7.x及以下)。

基於模板的

您可以在模板標記使用標準的ASP.Net控制和使用<script runat="server" language="c#">標籤直接建立形式。這是站在內聯網頁的編碼,你會在Visual Studio中,所以你放棄了預編譯的奢侈品等

<%@ Master Language="C#" MasterPageFile="~/umbraco/masterpages/default.master" AutoEventWireup="true" %> 
<asp:Content ContentPlaceHolderID="ContentPlaceHolderDefault" runat="server"> 
    <asp:Label ID="myLabel" runat="server" /> 
</asp:Content> 
<script runat="server" language="c#"> 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!this.IsPostBack) 
     { 
      this.myLabel.Text = "Hello World"; 
     }  
    } 
</script> 

宏觀基於

  1. 建立你的用戶控件形式Visual Studio並編譯它。
  2. .ascx複製到/usercontrols/文件夾中。
  3. .dll複製到/bin/文件夾中。
  4. 導航到開發者>在一把umbraco宏和創建一個新的宏
  5. 選擇用戶,從旁邊的下拉.Net User ControlMacro Properties選項卡上的控制。
  6. 將你導入你的模板。完成!
  7. (可選)如果您的用戶控件需要設置屬性,請不要忘記將它們添加到宏中的屬性選項卡並映射它們。

模板代碼看起來類似如下:

<%@ Master Language="C#" MasterPageFile="~/umbraco/masterpages/default.master" AutoEventWireup="true" %> 
<asp:Content ContentPlaceHolderID="ContentPlaceHolderDefault" runat="server"> 
    <umbraco:Macro Alias="MyForm" MyProperty="Hi!" runat="server" /> 
</asp:Content>