Avatar billede virkerikke Nybegynder
09. november 2007 - 10:36 Der er 6 kommentarer og
1 løsning

Gridview Linkfield

Davs Eksperter

Jeg sidder og leger/Slåser lidt med et gridview. problemet er at jeg skal have det ene felt til at være et link felt men hvordan gør man lige det? Sådan ser den kode du som jeg leger med

        Dim dt As New DataTable
        Dim dr As DataRow
        dt.Columns.Add("Produkt", GetType(String))
        dt.Columns.Add(New DataColumn("Link", GetType(HyperLinkColumn)))
        dr = dt.NewRow

        Dim testLink As HyperLinkColumn = New HyperLinkColumn

        testLink.NavigateUrl = "Http://google.com"
        testLink.Text = "Vis"
        testLink.Target = "_blank"
        testLink.HeaderText = "Vis"

        dr("Produkt") = "Bamse"
        dr("Link") = testLink
        dt.Rows.Add(dr)

        GridView1.DataSource = dt
        GridView1.DataBind()
Avatar billede winners79 Nybegynder
09. november 2007 - 20:18 #1
Uden at teste det...

Dim dt As New DataTable
        Dim dr As DataRow
        dt.Columns.Add("Produkt", GetType(String))
      //  dt.Columns.Add(New DataColumn("Link", GetType(HyperLinkColumn)))
     

        Dim testLink As HyperLinkColumn = New HyperLinkColumn

        testLink.NavigateUrl = "Http://google.com"
        testLink.Text = "Vis"
        testLink.Target = "_blank"
        testLink.HeaderText = "Vis"
dt.Columns.add(testLink);
dr = dt.NewRow
        dr("Produkt") = "Bamse"
        dr("Link") = testLink
        dt.Rows.Add(dr)

        GridView1.DataSource = dt
        GridView1.DataBind()
Avatar billede virkerikke Nybegynder
12. november 2007 - 08:44 #2
det virker desværre ikke. Syntes snart at jeg har testet alt hvad jeg kan komme i tanke om :(
Avatar billede simsen Mester
13. november 2007 - 11:24 #3
Hej virkerikke,

Hvorfor tilføjer du ikke kolonnen i selve dit gridview....så kan du tilgå rækken i din kode og gøre de ekstra ting, som du måske vil gøre?

<asp:GridView ID="grdEmployeeList" runat="server" DataKeyNames="employeeId"  AutoGenerateColumns="False" Width="850px">
            <Columns>
                <asp:BoundField DataField="employeeId" HeaderText="Bruger id">
                </asp:BoundField>
              <asp:TemplateField>
                    <ItemTemplate>
                        <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="http://www.google.dk" Target="_blank">HyperLink</asp:HyperLink>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
Avatar billede virkerikke Nybegynder
14. november 2007 - 08:26 #4
undskyld i alt frostrationen glemte jeg at fortælle at antalet af kolloner kan variere så der for bliver jeg nød til at bygge den i codebehind
Avatar billede neoman Novice
14. november 2007 - 11:02 #5
Generelt: I stedet for "virker ikke" skriv altid præcist hvad du har gjort, og hvordan koden reagerede (fejlmeddelelser osv ), for ellers kan det tit være svært at gætte/tankelæse hvad der skulle ske.

I dit tilfælde: du kan ikke lægge en gridviewcolumn (som HyperLinkColumn) ind i et datasæt. At bygge et dataset op søjle efter søjle har intet at gøre med at bygge et gridview op søjle efter søjle.

Du har to valgmuligheder:
1. Lav et gridview i mark-up som simsen foreslog, men med det strøste antal kolonner du forventer. I din code-behind kan du inden du binder gridviewet finde ud af hvor mange kolonner du forventer, og så delete de kolonner du ikke skal bruge.

2. Lav hele gridviewet i codebehind. Læg dette i din mark up:
                <asp:GridView ID="GridView1" runat="server"  AutoGenerateColumns="False">
</asp:GridView>


og kolonnerne kan du lave sådan:


        GridView1.Columns.Clear()
        GridView1.DataKeyNames = New String() {"MemberID"}

        Dim myHyp As New HyperLinkField
        myHyp.DataNavigateUrlFields = GridView1.DataKeyNames
        myHyp.DataNavigateUrlFormatString = "~/SetUp/EditMember.aspx?MemberID={0}&ApplicationID=" & ddlSelectApplication.SelectedValue
        myHyp.HeaderText = "Name"
        myHyp.DataTextField = "MemberName"
        GridView1.Columns.Add(myHyp)


        Dim myCOl As BoundField

        myCOl = New BoundField
        myCOl.DataField = "Email"
        myCOl.HeaderText = "Email"
        GridView1.Columns.Add(myCOl)

osv osv
Avatar billede virkerikke Nybegynder
14. november 2007 - 12:23 #6
mange tak både for det generele råd og det tekniske råd... nu køre det :-D
Så hvis du opretter et svar så kan vi få tråden lukket.

igen Tak
Avatar billede neoman Novice
14. november 2007 - 12:35 #7
det var så lidt:P
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