Avatar billede simm Nybegynder
10. januar 2010 - 12:06 Der er 1 kommentar og
1 løsning

Gridview-problemer

Hej folkens,

Kan nogen give en forklaring på, hvorfor jeg har et gridview der ikke virker, når den skal opdatere en værdi.

Jeg har to felter, værdi og fragtpris, der hentes fra en xml-fil, ind i en datatable, der så bliver sat som datasource til gridviewet.

Når jeg så skifter til editmode og klikker opdater, så affyres rowupdating eventet, men hvor det før har virket fint med at hive en værdi ud med:
GridViewRow gvrow = GridView1.Rows[e.RowIndex];
            string belobsgraense = ((TextBox)gvrow.Cells[0].Controls[0]).Text;
            string fragtpris = ((TextBox)gvrow.Cells[1].Controls[0]).Text;

Så vil parseren nu have at Textbox'en skal castes til en LiteralControl istedet? Og hvis jeg gør det, så er feltet tomt, pånær nogle \r\n (linieskift-tegn)

Det forstår jeg intet af.

Lidt markup:

<asp:GridView ID="GridView1" runat="server" GridLines="Horizontal" AutoGenerateColumns="false"
                ShowHeader="true" UseAccessibleHeader="true" Width="100%" CellPadding="5" CellSpacing="0">
                <Columns>
                <asp:BoundField DataField="Graense" HeaderText="Beløbsgrænse" />
                <asp:BoundField DataField="Fragtpris" HeaderText="Fragtpris" />
                <asp:CommandField ButtonType="Link" CancelText="Annuller" UpdateText="Opdater" EditText="Rediger" ShowEditButton="true" ShowCancelButton="true" CausesValidation="false" />
                </Columns>
            </asp:GridView>

Lidt kode:

/// <summary>
        /// Binder data til gridview'et med fragtpriserne
        /// </summary>
        private void BindGridView1()
        {
            GridView1.DataSource = GetXmlContent();
            GridView1.DataBind();
        }

        private DataTable GetXmlContent()
        {
            XmlDocument xmldoc = new XmlDocument();
            DataTable dt = new DataTable();

            try
            {
                xmldoc.Load(this.configfile);
                XmlNodeList xmllist = xmldoc.SelectNodes("indstillinger/fragt[@type='" + selectfreightmethod.SelectedValue + "']/*");

                dt.Columns.Add("Graense");
                dt.Columns.Add("Fragtpris");

                foreach (XmlNode node in xmllist)
                {
                    DataRow dr = dt.NewRow();
                    dr[0] = node.Attributes.Item(0).Value;
                    dr[1] = node.InnerText;
                    dt.Rows.Add(dr);
                }
               
            }
            catch (XmlException xmlE)
            {
                System.Web.HttpContext.Current.Response.Write(xmlE);
            }

            return dt;
        }

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            GridViewRow gvrow = GridView1.Rows[e.RowIndex];
            string belobsgraense = ((TextBox)gvrow.Cells[0].Controls[0]).Text;
            string fragtpris = ((TextBox)gvrow.Cells[1].Controls[0]).Text;
           
            XmlNodeList nodes = xmldoc.SelectNodes("indstillinger/fragt[@type='" + selectshippingmethod.SelectedValue + "']/*");
            XmlNode node = nodes[e.RowIndex];

            node.Attributes["oevre"].Value = belobsgraense;
            node.InnerText = fragtpris;
           
            xmldoc.Save(this.configfile);
           
            GridView1.EditIndex = -1;
            BindGridView1();

        }


// Disse events tildeles i OnInit

private void BindEvents()
        {
                // Init Gridview1 eventhandlers
            GridView1.RowUpdating += new GridViewUpdateEventHandler(GridView1_RowUpdating);
            GridView1.RowUpdated += new GridViewUpdatedEventHandler(GridView1_RowUpdated);
            GridView1.RowEditing += new GridViewEditEventHandler(GridView1_RowEditing);
            GridView1.RowCancelingEdit += new GridViewCancelEditEventHandler(GridView1_RowCancelingEdit);
        }
Avatar billede simm Nybegynder
10. januar 2010 - 12:07 #1
På forhånd tak for hjælpen :)
Avatar billede simm Nybegynder
10. januar 2010 - 20:30 #2
lukker - prøver en anden løsning
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
Kurser inden for grundlæggende programmering

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