Avatar billede shosho500 Nybegynder
26. maj 2006 - 18:16 Der er 8 kommentarer og
1 løsning

Gridview RowCommand event ?

Jeg har en dropdownlist, som sender info til et gridview, som indholder buttonfields til de forskellige informationer, som man så kan trykke på, og så bliver vist på siden.

Mit problem er den sidste del. Jeg ved det er RowCommand eventet jeg skal lytte på, men hvordan jeg får et ID fra mit gridview over til en anden sqldatasource, som en parameter, så den kan vise de pågældende informationer, har jeg ingen anelse om.

Jeg prøvede først at gøre det via querystring, men så holder den ikke viewstate på min dropdownlist og mit gridview idet url'en ændre sig, derfor jeg er nød til at gøre det på RowCommand eventet.

Alt hjælp vil være rart, eventuelle artikler eller andet, eller hvis der kan blive vist et eksempel på noget lignende her i spørgsmålet.

Det er C#, som jeg koder.
Avatar billede lyngzo Nybegynder
26. maj 2006 - 18:35 #1
Er det dette du mangler

private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
        // Sådan får du fat i data på den valgte kolonne
    DataRow row =  (DataRow) e.Item.DataItem;
    // Sådan får du fat i en control
    TextBox myTextBox = (TextBox) e.Item.FindControl("DinTextboxID");

    //tilgå data felter således:
    string test = row["feltnavn"].ToString();
    int TestInt = int.Parse(row["DitIntegerFelt"].ToString());
        //eks
    myTextBox.Text = test;

        }
Avatar billede shosho500 Nybegynder
26. maj 2006 - 18:52 #2
Det er ikke et datagrid, men et gridview, så det er RowCommand eventet jeg skal have fat i, så det der hjælper ikke særlig meget, desværre..
Avatar billede dr_chaos Nybegynder
26. maj 2006 - 19:41 #3
lav en select parameter:
<asp:ControlParameter ControlID="ditmaingridview" type="Int32" property="selectedvalue" />

Du skal bare vise en select knap på gridviewet
Avatar billede dr_chaos Nybegynder
26. maj 2006 - 19:43 #4
<SelectParameters>
              <asp:ControlParameter ControlID="GridView1" Name="au_id" PropertyName="SelectedValue"
                Type="String" />
            </SelectParameters>
Avatar billede shosho500 Nybegynder
27. maj 2006 - 13:14 #5
Tak dr. chaos :)

Men kan du svarer mig på en ting mere.

Hvis jeg skal have fat i en specifik kolonne og have tilføjet noget tekst til de rækker, som bliver hentet ud, hvordan gør jeg det?

Fx. Jeg har 2 kolonne, der er 6 rækker i alt. I kolonne 2, skal der tilføjes "nr." foran de tal som bliver hentet ud.

Husk svar, så du kan få point.
Avatar billede dr_chaos Nybegynder
27. maj 2006 - 13:49 #6
svar :)

På flere måder :
foreach (GridViewRow dr in g.Rows)
        {

            dr.Cells["index på columen"].Text = "nr" +dr.Cells["index på columen"].Text;
        }
Avatar billede dr_chaos Nybegynder
27. maj 2006 - 13:53 #7
<asp:GridView ID="GridView1" runat="server">
    <Columns>
   
    <asp:TemplateField>
    <ItemTemplate>
    <asp:Label id="lbl" runat="server" Text='<%# FormatNumber(Bind("tal").ToString()) %>'></asp:Label>
    </ItemTemplate>
   
    </asp:TemplateField>
    </Columns>
    </asp:GridView>


i codebehind
public string FormatNumber(string number)
    {
            return "nr. "+ number;
    }
Avatar billede dr_chaos Nybegynder
27. maj 2006 - 13:53 #8
Den anden løsning er den jeg personligt vil foretrække.
Avatar billede shosho500 Nybegynder
27. maj 2006 - 13:58 #9
takker mange gange :)
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