Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > ASP.NET 1.x och 2.x > Generella frågor

Rookiefråga om gridview

Nanabush
Nanabush

Gradering

#14879

Jag har en gridview där jag listar datum och rubrik till mina nyheter. Jag vill att om jag trycker på en rubrik så ska den specifika nyheten visas på samma sida (News.aspx) så det blir typ

news.aspx?newsid=45
. hur går jag tillväga

Taggar: gridview,
ID: #14879 | Skapades: 2009-03-14 10:44:27 | Tråden har 6 svar och har lästs 515 gånger.

pjotte
pjotte

Gradering

#14880

Du kan skapa en hyperlinkfield i din Gridview

<asp:hyperlinkfield datatextfield="rubrik" //Det databasflt som innehller det ska visas p raden i gridwiew

datanavigateurlfields="id" //det databasflt som ska skickas med lnken d.v.s det {0} i nsta rad

datanavigateurlformatstring="~/new.aspx?newsid={0}"

headertext="Rubrik" //Headern i gridview

target="_blank" /> //Ange target om du vill

ID: #14880 | Skapades: 2009-03-14 13:01:26

jag tror att det han vill göra är att visa nyheten, inte skapa en länk till den.

// www.Gimbergsson.com
ID: #14881 | Skapades: 2009-03-14 17:39:23

pjotte
pjotte

Gradering

#14888

Ja så var det nog han menade. Det bör man väl kunna lösa genom att använda en updatepanel och lägga en formview där. Dataurvalet kan fixas genom att fånga upp request.querystring, men hur beror på vilken databas man använder.

ID: #14888 | Skapades: 2009-03-14 21:39:16

Nanabush
Nanabush

Gradering

#14890

jag använder en MSSQL databas

Taggar: mssql,
ID: #14890 | Skapades: 2009-03-15 10:00:11

pjotte
pjotte

Gradering

#14895

Om du skapat länken i GridView som jag skrev tidigare så du lägga till en FormView på sidan för att visa nyheten. Du kopplar Formview mot en ny Datasource där du ställer den att hämtar den nyheten som har det newsid som du skickar med. Kolla hur jag skrivit inom <selectparameters> här nedanför. Exemplet är hämtat från min ToDo-lista så du får ändra lite så det passar dina fältnamn i databasen.

 <asp:FormView ID="FormView1" runat="server" DataKeyNames="TaskId" DataSourceID="SqlDataSource2">
                <ItemTemplate>
                    Name:
                    <asp:Label ID="NameLabel" runat="server" Text='<%# Bind("Name"%>' />
                    <br />
                    TaskId:
                    <asp:Label ID="TaskIdLabel" runat="server" Text='<%# Eval("TaskId"%>' />
                    <br />
                </ItemTemplate>
            </asp:FormView>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" 
ConnectionString="<%$ ConnectionStrings:MinAnslutning %>"
   SelectCommand="SELECT [Name], [TaskId] FROM [Tasks] WHERE ([TaskId] = @TaskId)">
            <SelectParameters>
         <asp:QueryStringParameter DefaultValue="1" Name="TaskId" QueryStringField="newsid"
                        Type="Int32" />
            </SelectParameters>
</asp:SqlDataSource>
---------
Om du har VisualWebDesigner så är det enkelt att använda guiden som finns för att lägga till ny Datasource. När du skapat kopplingen mot databasen (samma som till din GridView) och valt vilka kolumner som ska visas så klickar du på "Where-knappen", anger vilken Column som urvalet ska ske mot, anger = som operator och anger QueryString som Source. I Parameter properties anger du newsid i QueryString field och ev Default value. Klicka på Add och allt är klart. I koden på sidan dyker det troligen upp några fler <..Parameter> block. Dom kan du bara radera om användaren bara ska läsa (och inte redigera) innehållet i nyheten.
Hoppas att det var till hjälp
ID: #14895 | Skapades: 2009-03-15 13:28:20

Nanabush
Nanabush

Gradering

#14908

tackar som fan.. ni är bäst grabbar

ID: #14908 | Skapades: 2009-03-15 19:39:57
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy