Bygge egne skjema uten skjemageneratoren

Ettersom eRedaktør baserer seg på asp.net, er det mange muligheter for utviklere å bygge egne skjema med egen funksjonalitet. Her er et eksempel på et enkelt skjema som genererer et nytt item i databasen basert på ulike inputs.

Her er et Example på et enkelt skjema som genererer et nytt item i databasen basert på ulike inputs. Exampleet bruker to filer for å skille design og kode.

Innhold i CreateItem.ascx:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="CreateItem.ascx.cs" Inherits="CreateItem" %>
<fieldset>
    <label id="lblTxtName" for="txtName" runat="server">Navn</label>
        <asp:TextBox ID="txtName" runat="server"></asp:TextBox>

    <label id="lblTxtEMail" for="txtEMail" runat="server">e-post</label>
        <asp:TextBox ID="txtEMail" runat="server"></asp:TextBox>
    
    <asp:Button ID="btnSaveItem" runat="server" Text="Send inn"
        onclick="btnSaveItem_Click" />
</fieldset>

Innhold i CreateItem.ascx.cs:

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.Common;
using System.Linq;
using eR2;

public partial class CreateItem : eR2UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
       
    }

    protected void btnSaveItem_Click(object sender, EventArgs e)
    {
        //Oppretter nytt item
        var myItem = new Item();

        //Legger inn verdier fra skjema
        myItem.Title = txtName.Text;
        myItem.Teaser = txtEMail.Text;

        //Legger inn standardverdier til et item
        myItem.CreatedDate = DateTime.Now;
        myItem.UpdatedDate = DateTime.Now;
        myItem.PublishDate = DateTime.Now.Date;
        myItem.IsPublished = false;
        myItem.IsDeleted = false;
        myItem.TemplateId = (from t in db.Templates where t.TemplateName == "Tekst" select t.TemplateId).FirstOrDefault();
        myItem.GUID = Guid.NewGuid();

        //Legger item inn i databasen
        db.Items.AddObject(myItem);

        //Lagrer
        db.SaveChanges();
    }
}