Avatar billede testpilot_dk Nybegynder
07. august 2007 - 20:01 Der er 3 kommentarer og
1 løsning

Tabeller og checkboxe, værdi ved submit

Hej!

  Jeg forsøger at lave noget dynamiskdatabase udtræk, hvor der for hver record i databasen, skal laves en checkbox, som brugeren kan klikke af.

  Denne del har jeg lavet og fungere fint, spørgsmålet er bare hvordan får jeg fat i de forskellige værdier, når brugeren trykker submit.

Min codebehind fil ser således ud:

-----------------------------------------
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class showrent : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Request.QueryString.HasKeys())
            {
                FillTable(Convert.ToInt32(Request.QueryString["Type"]));
                this.Label1.Text = Database_Connector.Instance().GetType(Convert.ToInt32(Request.QueryString["Type"]));
            }
        }
        FillTable(1);
        this.Label1.CssClass = "text_" + Session["TextSize"].ToString();
        this.Label1.Text = Database_Connector.Instance().GetType(1);
    }

    protected void FillTable(int queryvalue)
    {
        this.Table1.Width = Convert.ToInt32(Session["TableSize"]);
        Database_Connector.Instance().OpenConnection();
        IDataReader reader = Database_Connector.Instance().SelectWithoutCloseOpen(
            "SELECT rent.id, rent.produkt, rent.month_price, rent.period, rent.description, rent.shortdescription, rent.picturedescription, rent.type, picture.billed_str_x, picture.billed_str_y, picture.billed_link, picture.billed_title FROM picture INNER JOIN rent ON picture.id = rent.picturelink WHERE rent.Type =" + queryvalue + " AND rent.Active = 1;");
        if (reader != null)
        {
            while (reader.Read())
            {
                TableRow tr = new TableRow();
                TableCell tc = new TableCell();


                tc.Text = "<li>Produkt: " + reader["produkt"].ToString() + "</li>";
                tc.Text += "<li>Periode: " + reader["period"].ToString() + "</li>";
                tc.Text += "<li>Pris pr. md.: " + reader["month_price"].ToString() + "</li>";
                tc.Text += "<li>Kort Beskrivelse: " + reader["shortdescription"].ToString() + "</li><li> <a href='Great.aspx?type=" + reader["type"].ToString() + "&id=" + reader["id"].ToString() +"'>Beskrivelse</a></li>";

                tc.ColumnSpan = 2;
                tc.CssClass = Session["TextSize"].ToString() + ", left";
                tr.Cells.Add(tc);

                tc = new TableCell();
                ImageHandler i = new ImageHandler();
                string str = i.LoadFile(Server.MapPath(reader["billed_link"].ToString()), Convert.ToInt32(Session["Size"]));
                string[] str_array = new string[2];
                str_array = str.Split(',');

                tc.Text = "<img src='" + reader["billed_link"].ToString() + "' width='" + str_array[1] + "' height='" + str_array[0] + "'/>";
                tc.CssClass = "right";
                tr.Cells.Add(tc);

                this.Table1.Rows.Add(tr);

                tr = new TableRow();

                tc = new TableCell();
                CheckBox c = new CheckBox();
                tc.Controls.Add(c);
                tr.Cells.Add(tc);

                tc = new TableCell();
                tc.Text = "Klik for forespørgsel";
                tr.Cells.Add(tc);

                tc = new TableCell();
                tc.Text = "<a href='" + reader["billed_link"].ToString() + "'>Større Billede</a>";
                tr.Cells.Add(tc);
                this.Table1.Rows.Add(tr);

                tr.Cells.Add(tc);
                this.Table1.Rows.Add(tr);
               
                tc = new TableCell();
                tr = new TableRow();
                tc.ColumnSpan = 3;
                tc.Text = "<br>";
                tr.Cells.Add(tc);
                this.Table1.Rows.Add(tr);
            }
        }
        Database_Connector.Instance().CloseConnection();

        TableCell tcc = new TableCell();
        TableRow trr = new TableRow();
        tcc.ColumnSpan = 2;
        tcc.Controls.Add(this.Button1);
        this.Button1.Style.Add("left", "0px");
        this.Button1.Style.Add("top", "0px");
        this.Button1.Style.Add("position", "relative");
        this.Button1.Text = "Send Forespørgsel";
        trr.Cells.Add(tcc);
        this.Table1.Rows.Add(trr);
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        foreach (Control c in this.Table1.Controls)
        {
            if (c.GetType() == typeof(CheckBox))
            { }
        }

        int i = 0;
        Server.Transfer("Test");
    }
}
-----------------------------------------

Min foreach sætning, fanger ikke de checkboxe som der er i tabellen, håber i har et svar.
Avatar billede neoman Novice
07. august 2007 - 21:46 #1
De er længere nede i hierarkiet.

Du kan fange dem ved at løbe gennem tabellens rækker. I den givne række, find checkboxen i den pågældende tabelcelle.

I VB ser det sådan ud:
Dim myCellIndex As Inetger = 0 ' den første celle
for each workRow as TableRow in Table1.Rows
  dim myCheckBox as CheckBox
  myCheckbox = CType(workRow(myCellIndex).Controls(indexOfMyControl),CheckBox)
next
Avatar billede testpilot_dk Nybegynder
17. august 2007 - 14:37 #2
Takker, send et svar og du får dine point
Avatar billede testpilot_dk Nybegynder
04. september 2007 - 17:23 #3
Sender du et svar????
Avatar billede neoman Novice
04. september 2007 - 18:00 #4
jeps:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester