简体   繁体   中英

How to insert data (radio and open) from variable webform?

Hello I'm trying to insert data from a variable form but I don't know where to start. I have 3 scripts for this. A class (let's call it test.cs), a webform (test.aspx) and of course test.aspx.cs.

Let's start with the class which creates the form (This works it creates form as it should):

public string Questions()
    {
        SqlCommand cmd = new SqlCommand("SELECT enquete_vraag_ID, enquete_vraag, type, actief FROM enquete_vraag ORDER BY volgorde ASC", con);
        SqlDataReader reader;
        con.Open();
        reader = cmd.ExecuteReader();
        StringBuilder str = new StringBuilder("");
        while (reader.Read())
        {
            if (reader["actief"].ToString() == "True")
            {
                str.Append("<tr>");
                str.Append("<td class='bold' colspan='11'>" + reader["enquete_vraag"].ToString() + ":</td>");
                str.Append("</tr>");
            }
            if (reader["type"].ToString() == "radio" && reader["actief"].ToString() == "True")
            {
                str.Append("<tr>");
                str.Append("<td>Cijfer:</td>");
                str.Append("<td>1<input type='radio' value='1' name='" + reader["enquete_vraag_ID"].ToString() + "' /></td>");
                str.Append("<td>2<input type='radio' value='2' name='" + reader["enquete_vraag_ID"].ToString() + "' /></td>");
                str.Append("<td>3<input type='radio' value='3' name='" + reader["enquete_vraag_ID"].ToString() + "' /></td>");
                str.Append("<td>4<input type='radio' value='4' name='" + reader["enquete_vraag_ID"].ToString() + "' /></td>");
                str.Append("<td>5<input type='radio' value='5' name='" + reader["enquete_vraag_ID"].ToString() + "' /></td>");
                str.Append("<td>6<input type='radio' value='6' name='" + reader["enquete_vraag_ID"].ToString() + "' /></td>");
                str.Append("<td>7<input type='radio' value='7' name='" + reader["enquete_vraag_ID"].ToString() + "' /></td>");
                str.Append("<td>8<input type='radio' value='8' name='" + reader["enquete_vraag_ID"].ToString() + "' /></td>");
                str.Append("<td>9<input type='radio' value='9' name='" + reader["enquete_vraag_ID"].ToString() + "' /></td>");
                str.Append("<td>10<input type='radio' value='10' name='" + reader["enquete_vraag_ID"].ToString() + "' /></td>");
                str.Append("</tr>");
            }
            else if (reader["type"].ToString() == "open" && reader["actief"].ToString() == "True")
            {
                str.Append("<tr>");
                str.Append("<td colspan='11'><textarea name='" + reader["enquete_vraag_ID"].ToString() + "'></textarea></td>");
                str.Append("</tr>");
            }
        }
        reader.Close();
        con.Close();
        HtmlString text = new HtmlString(str.ToString());
        return text.ToString();
    }

Now the webform which displays it as it should:

<div id="right-questions">
    <form id="Form1" method="post" action="#" runat="server">
        <table class="table-questions">
            <tr>
                <td class="bold" colspan="11">Algemene gegevens:</td>
            </tr>
            <tr>
                <td colspan="11" class="word-spacing">
                    <asp:Label ID="algemeneGegevensLabel" runat="server" Text=""></asp:Label></td>
            </tr>
            <asp:Label ID="vragenLabel" runat="server" Text=""></asp:Label>
            <tr>
                <td colspan="11">
                    <asp:Button ID="insturenButton" runat="server" Text="Insturen" OnClick="insturenButton_Click" /></td>
            </tr>
        </table>
    </form>
</div>

And as last test.aspx.cs (I have nothing there because I don't know what to do):

    protected void Page_Load(object sender, EventArgs e)
    {
        Klas klas = new Klas(Session["klas"].ToString());
        Vak vak = new Vak();
        var vakken = klas.showVakken();
        vakkenLabel.Text = vakken;
        algemeneGegevensLabel.Text = klas.algemeneGegevens();
        vragenLabel.Text = vak.Vragen();
    }

    protected void insturenButton_Click(object sender, EventArgs e)
    {

    }

I hope someone can help me.

You can try with InnerHtml property. Set an area where you want to add these buttons and put runat="server" to access this on server side event, like this

<div id="buttonContainer" runat="server"></div>

Now you just need to set the innerHTML of this container

protected void insturenButton_Click(object sender, EventArgs e)
{
  string htmlString = Questions();   // call your function which returns the string.
  buttonContainer.InnerHtml = htmlString;
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM