Avatar billede _basil Nybegynder
21. februar 2004 - 20:14 Der er 1 kommentar og
1 løsning

Hive data ud fra en asp:textbox i et datagrid.

Hej eksperter.

Jeg har et datagrid der viser noget indhold fra en database. Samtidig har jeg manuelt lagt en textbox ind så det er muligt at indtaste en ny værdi til et felt. Kode for Datagrid:

<asp:datagrid                                 id="DataGrid1"
    runat="server"
    CellSpacing="3"
    OnItemCommand="Item_Click"
    AutoGenerateColumns="False"
    cellPadding="3">
    <HeaderStyle Font-Bold="True">
    </HeaderStyle>
    <Columns>                            <asp:TemplateColumn ItemStyle-HorizontalAlign="Center">
        <HeaderTemplate>Id:</HeaderTemplate>
        <ItemTemplate>
          <asp:Label id=idnumber Text='<%DataBinder.Eval(Container.DataItem, "ID")%>' Runat=server>                      </asp:Label>
        </ItemTemplate>                        </asp:TemplateColumn>
                                            <asp:BoundColumn DataField="M&#230;rke" HeaderText="M&#230;rke" ItemStyle-HorizontalAlign="Center"></asp:BoundColumn>
                                            <asp:BoundColumn DataField="Antal" HeaderText="Antal" ItemStyle-HorizontalAlign="Center"></asp:BoundColumn>
                                            <asp:BoundColumn DataField="Antal Solgte" HeaderText="Antal Solgte" ItemStyle-HorizontalAlign="Center"></asp:BoundColumn>
                                            <asp:TemplateColumn HeaderText="Indtast nyt antal solgte" ItemStyle-HorizontalAlign="Center">
                                                <ItemTemplate>
                                                    <asp:TextBox id=numse Runat="server" Enabled="True"></asp:TextBox>
                                                </ItemTemplate>
                                            </asp:TemplateColumn>
                                            <asp:ButtonColumn Text="Tryk her" HeaderText="Tryk her" CommandName="redigerantal"></asp:ButtonColumn>
                                        </Columns>
                                    </asp:datagrid>

Hmm det roder vist lidt:) Men som i kan se har jeg en Textbox med id=numse.. I min codebehindfil ser koden sådan ud:

protected void Item_Click(Object sender, DataGridCommandEventArgs e)
        {
            BallDB bdm = new BallDB();
            Label id = (Label) e.Item.FindControl("idnumber");
            TextBox nytantal = (TextBox) e.Item.FindControl("numse");
            int i =Convert.ToInt32(id.Text);
            String nytantalstr = nytantal.Text;
            int nn = Convert.ToInt32(nytantalstr);
            bdm.updateDB(i, nn);
            updateGrid();
        }

Jeg kan sagtens hive teksten ud for den label jeg bruger. (int i =Convert.ToInt32(id.Text);) Men når jeg gør det samme for TextBoxen er strengen altid tom. dvs String nytantalstr = nytantal.Text; altid er null.

Meningen var jo at dette skulle være hva brugeren indtaster i textboxen?

Mvh Thomas
Avatar billede _basil Nybegynder
21. februar 2004 - 20:15 #1
"er strengen altid tom. dvs String nytantalstr = nytantal.Text; altid er null. ..." SLUDDER!! strengen er altid tom!
Avatar billede snepnet Nybegynder
21. februar 2004 - 22:12 #2
Mit bedste bud er at du databinder inden handleren eksekveres.
Du skal sørge for ikke at lave en databinding ved hvert postback hvis du skal have ovenstående til at fungere.
Nu ved jeg ikke hvordan du sørger for at binde data til griddet, men nedenstående er et eksempel på det :

// koden kører i Page_Load(object sender, System.EventArgs e)
if(!IsPostBack)
{
  DataSet ds = new DataSet();
  sqlDataAdapter1.Fill(ds);
  DataGrid1.DataSource = ds;               
  DataGrid1.DataBind();
}

Hvis du ikke checker på IsPostBack binder du hver gang, hvilket vil sige at du sådan set nulstiller din tekstbox inden du kører din handler... hvorved du ender med den tomme streng.

Du kan altid checke med dubuggeren hvorvidt du kører din databindingsrutine inden Item_Click køres, hvis der skulle være nogen tvivl.
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