Avatar billede trenskow Nybegynder
03. maj 2005 - 00:09 Der er 13 kommentarer og
1 løsning

hjælp til datagrid [newbie]

Hejsa allesammen

Jeg har siddet og rodet med datagrids i et par dage nu, og indtil videre har jeg slet ikke fået noget til at virke.

Jeg bruger visual studio .net og har i mit aspx lavet en "drag 'n' drop" af et DataGrid over på min side. Jeg har så døbt det dg og har følgende kode i .cs

....
private DataGrid dg = new DataGrid();
private DataSet ds = new DataSet();
....

DataTable data = ds.Tables.Add("Vises");
data.Columns.Add("TestColumn1");
data.Columns.Add("TestColumn2");
DataRow dr;

for(int i = 0; i < 2; i++)
{
    dr = data.NewRow();
    dr[0] = "TestRow1";
    dr[1] = "TestRow2";
}
dg.DataSource = ds;
dg.DataBind();

Men når jeg "loader" siden, så bliver intet vist...
Er der nogen som kan fortælle mig, hvad det er som jeg laver forkert her....
Avatar billede snepnet Nybegynder
03. maj 2005 - 00:19 #1
du skal huske at lave data.Rows.Add(dr);
mvh
Avatar billede trenskow Nybegynder
03. maj 2005 - 00:25 #2
tada... :-)
point til dig.. takker
Avatar billede snepnet Nybegynder
03. maj 2005 - 00:27 #3
det var så lidt :o)
mvh
Avatar billede trenskow Nybegynder
03. maj 2005 - 01:04 #4
Nu når jeg har dig, kan jeg så få dig til at svare på hvordan jeg laver eks dr[0] til et hyperlink?
og hvordan "fixer" jeg bredden på de forskellige columns?
Avatar billede snepnet Nybegynder
03. maj 2005 - 01:12 #5
det nemmeste er at lave en template.
du kan sætte forskellige kolonner ind i griddet, og designeren kan også give dig en hånd.
højreklik på griddet og klik på propertybuilder, og derefter på columns... der får du diverse muligheder.
det er ikke i sig selv så interessant, men hvis du kigger i den html der bliver skrevet i din aspx-fil, kan du se hvordan det fungerer.
mvh
Avatar billede snepnet Nybegynder
03. maj 2005 - 01:14 #6
Her er f.eks. en template, der sørger for at der bliver indsat en enkelt kolonne, og teksten der vises er indholdet af feltet SomeDataField i en datakilde.
Desuden skiftes farven for hver linie.

<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="false">
    <AlternatingItemStyle BackColor="Gray"></AlternatingItemStyle>
    <ItemStyle BackColor="Aqua"></ItemStyle>
    <Columns>
        <asp:BoundColumn DataField="SomeDataField" HeaderText="Header"></asp:BoundColumn>
    </Columns>
</asp:DataGrid>

mvh
Avatar billede snepnet Nybegynder
03. maj 2005 - 01:14 #7
(hvis jeg ikke svarer er det fordi jeg er dampet i seng)
Avatar billede trenskow Nybegynder
03. maj 2005 - 11:33 #8
snepnet: Takker.. jeg har til dels fundet ud af det nu.. nu mangler jeg "bare" at definere mit DataField i C# : codebehind
Avatar billede snepnet Nybegynder
03. maj 2005 - 11:47 #9
Hvis du gerne vil tilføje dine kolonner runtime, kan du gøre det ved at tilføje respektive kolonner til griddet f.eks. sådan her :

BoundColumn bc = new BoundColumn();
bc.DataField = "SomeField";
bc.HeaderText = "SomeHeader";
someDataGrid.Columns.Add(bc);

mvh
Avatar billede trenskow Nybegynder
03. maj 2005 - 12:54 #10
Jeg kan godt se jeg er helt lost her....
her er min kode fra aspx

<asp:HyperLinkColumn DataNavigateUrlField="PokerLink" DataTextField="PokerName" HeaderText="PokerSite"></asp:HyperLinkColumn>
                    </Columns>

skal jeg så ikke lave den som du lige skrev her
HyperLinkColumn hc = new HyperLinkColumn();
hc.DataTextField = "PokerName";
DataGrid1.Columns.Add(hc);

så har jeg en foreach løkke.. og deri

dr = data.NewRow();

hc.DataNavigateUrlField = "http://test.dk";
hc.DataNavigateUrlFormatString = "TestName";

dr[0] = hc;

Men ligemeget hvad jeg prøver, så får jeg denne fejl på siden...
[HttpException (0x80004005): A field or property with the name 'PokerName' was not found on the selected datasource.]

Jeg er ved at hive hårene ud af mig selv :-)

Jeg kan oprette et nyt spøgsmål så du får point for alt denne hjælp også...
Avatar billede snepnet Nybegynder
03. maj 2005 - 13:01 #11
den siger at du i din datakilde ikke har en property der hedder PokerName.... hvis du stadig bruger samme princip som du viste i spørgsmålet skal du nok lige checke at du får sat en kolonne ind der hedder PokerName.
du skal heller ikke lægge dine kontroller ind i dine datarækker.... dem skal du lægge på selve griddet.
mvh
Avatar billede trenskow Nybegynder
03. maj 2005 - 14:12 #12
yes yes... så begynder det at ligne noget...
Jeg har stadig denne linie i min aspx

<asp:HyperLinkColumn DataNavigateUrlField="Link" DataTextField="Name" HeaderText="Site"></asp:HyperLinkColumn>
                    </Columns>

og min kode ser nu sådan her ud...

data.Columns.Add("Name");
data.Columns.Add("Link");

dr[0] = t.returnName();
dr[1] = t.returnLink();

nu virker det næste.... den første kollone viser godt nok navn og link, som et hyperlink.. men nu har jeg min kollone nr2, og den skriver bare Name
Avatar billede trenskow Nybegynder
03. maj 2005 - 14:14 #13
Jeg skal lige rette mig selv..

I min første kollone vises det rigtigt som et hyperlink
Men så viser den navnet og linket i de 2 næste kolloner hver for sig...
Avatar billede snepnet Nybegynder
03. maj 2005 - 14:28 #14
hvis du selv begynder at sætte kolonner ind skal du nok sætte AutoGenerateColumns="false" på dit datagrid... Ellers får du både dine egne + default.
mvh
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

IT-JOB

Netcompany A/S

Test Consultant

Politiets Efterretningstjeneste

IT-frontdesk medarbejder til PET's IT Servicedesk

Styrelsen for Grøn Arealomlægning og Vandmiljø

Teamleder til Application Management