sloučení 2 buněk v gridview   zodpovězená otázka

C#, VB.NET, ASP.NET WebForms

Nemáte už někdo zkušenosti s komponentou gridview a to takové aby šlo sloučit 2 buňky. Může jít i o sloučení Footer.

Díky za info.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To už tak jednoduše nepůjde, nějaké poznatky jsou tady. Je nutné to udělat kódem v události RowDataBound.

http://forums.asp.net/t/1053747.aspx

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To je sice ok,ale je to v C a navíc se slučují buňky nad sebou. Já potřebuju vedle sebe.

Nevíte prosím jak na to?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak jsem zatím pokročil do tohoto stádia:

Výpis Default.aspx.vb

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim oDs As New DataSet
        oDs.ReadXml(Request.PhysicalApplicationPath + "XMLFile.xml")
        GridView1.DataSource = oDs
        GridView1.DataBind()
        'GridView1.FooterRow.Cells(1).Text = "NIC"
    End Sub

    Protected Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowCreated
        If e.Row.RowType = DataControlRowType.Footer Then
            Dim oCell As New TableCell

            oCell.ColumnSpan = 2
            e.Row.Cells.Clear()
            oCell.Text = "Merged header"
            e.Row.Cells.Add(oCell)



            'append the content of cell # 2 to cell #1

        End If
    End Sub

Výpis XMLfile.xml:

<Mitarbeiter>
  <ma>
    <id>1</id>
    <name>Florian</name>
    <phone>123</phone>
  </ma>
  <ma>
    <id>2</id>
    <name>Andreas</name>
    <phone>234</phone>
  </ma>
  <ma>
    <id>3</id>
    <name>Martin</name>
    <phone>345</phone>
  </ma>
</Mitarbeiter>

Výpis default.aspx

<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server"
            Style="left: 99px; position: relative; top: 16px" ShowFooter="True">
        </asp:GridView>
    
    </div>
    </form>
</body>

Podaří se tak jak má,ale prostě zakomentovaný řádek 'GridView1.FooterRow.Cells(1).Text = "NIC" nejde,protože index ukazuje správně,ale asi buňka neexistuje.

Můžete mi prosím poradit,co s tím.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tady bude asi ten problém, že buňky se číslují od nuly. Vy máte po úpravě v řádku buňku jen jednu, takže můžete přistupovat pouze na FooterRow.Cells(0).Text.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

jj,problém to je,já potřebuji mít přístup do obou.

Ale už jsem to vyřešil,je to ok.

Zde je zdroják

Protected Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowCreated
        If e.Row.RowType = DataControlRowType.Footer Then
            'append the content of cell # 2 to cell #1
            e.Row.Cells(1).Text += " " & e.Row.Cells(2).Text
            'set the columnspan
            e.Row.Cells(1).ColumnSpan = "2"
            'remove the second cell
            e.Row.Cells.Remove(e.Row.Cells(2))
           
        End If
    End Sub

Můžete vyzkoušet,snad půjde i na vícesloupcový gridview než jen na 3sloupcový.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jo takhle, nenapadlo mě, že chcete tet z obou dvou před sloučením vytáhnout.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To nemusí být,co jiného vás ještě napadá?

Já teď zjistil, že v mé aplikaci toto nefunguje,asi to mám ve špatné události.

Já totiž načtu z databáze a hned zobrazuji pomocí gridview v události

Protected Sub Button1_Click(....

Jakmile použiji ten kód,co má sloučit 2 buňky ve footer,tak to vyhodí chybu opět s indexem.

Možná to chce jinou událost než

GridView1_RowDataBound....

Prosím pomozte.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Vyřešeno,opět odkazování na špatné indexy buněk.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback