Avatar billede speedpete Nybegynder
06. februar 2006 - 10:37 Der er 24 kommentarer og
1 løsning

Skifte enkelte ord ud

Jeg læser fra en database ind i et dataset vha. en DataAdapter. Derefter binder jeg datasetttet til en GridView.

Hvordan kan man lettest skifte enkelte ord ud i datasettet/GridViewet (f.eks. hvis jeg vil have vist 'povl' som 'Paul')?

Jeg tænker at der er et par muligheder: Enten bruge en eller anden event i forbindelse med DataAdapter.Fill(), eller at traversere samtlige felter i datasettet og bruge string.Replace(), eller bruge en eller anden event når GridView'et databindes?
Avatar billede dr_chaos Nybegynder
06. februar 2006 - 10:42 #1
er det et gridview på en hjemme side ?
Avatar billede dr_chaos Nybegynder
06. februar 2006 - 10:47 #2
Hvis det er det kan du bruge en template column og formatere output runtime.
Avatar billede speedpete Nybegynder
06. februar 2006 - 11:00 #3
hej igen,
tak, det lyder som det sidste, jeg skal bruge. Jo, det er på et website.
Avatar billede dr_chaos Nybegynder
06. februar 2006 - 11:12 #4
eksempel på template field:

  <asp:TemplateField SortExpression="Note" HeaderText="Note" >
                            <ItemTemplate>
                                <asp:Label ID="Label2" runat="server" Text='<%# FormatNote(Eval("Note").ToString())%>'></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>


i codebehind har du en funktion:
//streng som returneres
    public string FormatNote(string note)
    {
        //udfør streng manipulation og return den ændrede streng

return note;
    }
Avatar billede speedpete Nybegynder
06. februar 2006 - 11:57 #5
ok, tak for det. Det var, hvad jeg skulle bruge.
Avatar billede speedpete Nybegynder
06. februar 2006 - 13:03 #6
... kender du forresten en smart måde, så siden kan "huske", hvordan GridViewet var sorteret forrige gang siden vistes? (Man vælger ét item i gridviewet, bliver omdirigeret, vender så tilbage for at finde et andet item, og så skal gridviewet helst være sorteret som da man forlod det lige før)
Avatar billede dr_chaos Nybegynder
06. februar 2006 - 13:07 #7
jeg tror du kan gemme sortexpression
Avatar billede speedpete Nybegynder
13. februar 2006 - 11:40 #8
jeg har ikke glemt dig, har ligget syg...
Avatar billede dr_chaos Nybegynder
13. februar 2006 - 12:52 #9
oki
Avatar billede speedpete Nybegynder
13. februar 2006 - 14:49 #10
hej igen, nogen ide til, hvorfor nedenstående ikke virker?

<asp:GridView OnSorting="GridView1_Sorted" >
...
void GridView1_Sorted(Object sender, EventArgs e)
    {
        Session["GridViewDocSortDir"]= GridView1.SortDirection;
        Session["GridViewDocSortExp"]= GridView1.SortExpression;
    }

protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["GridViewDocSortExp"] != null & Session["GridViewDocSortDir"] != null)
        {
            GridView1.Sort((string)Session["GridViewDocSortExp"], (SortDirection)Session["GridViewDocSortDir"]);
        }
    }
Avatar billede dr_chaos Nybegynder
13. februar 2006 - 15:21 #11
er allowsorting sat til true ?
Avatar billede speedpete Nybegynder
13. februar 2006 - 21:42 #12
jep, den kan sagtens sortere, bare ikke "huske" det når jeg vender tilbage.
Avatar billede dr_chaos Nybegynder
14. februar 2006 - 07:29 #13
hvorfor har du if (Session["GridViewDocSortExp"] != null & Session["GridViewDocSortDir"] != null)
        {
            GridView1.Sort((string)Session["GridViewDocSortExp"], (SortDirection)Session["GridViewDocSortDir"]);
        }

i page_load ?
Avatar billede speedpete Nybegynder
14. februar 2006 - 08:05 #14
Mener du, hvorfor er det i Page_Load, jeg har lagt koden? Det er ikke sikkert det skal være i Page_Load... jeg ønsker bare at tjekke, når siden vises, om der tidligere har været gemt sortexpression og sortdirection.
Avatar billede dr_chaos Nybegynder
14. februar 2006 - 08:07 #15
så skal du bruge
if (!Page.IsPostBack && Session["GridViewDocSortExp"] != null && Session["GridViewDocSortDir"] != null)
        {
            GridView1.Sort((string)Session["GridViewDocSortExp"], (SortDirection)Session["GridViewDocSortDir"]);
        }
Avatar billede dr_chaos Nybegynder
14. februar 2006 - 08:10 #16
det virkede ?
Avatar billede speedpete Nybegynder
14. februar 2006 - 08:15 #17
næ... jeg sorterer listen, går hen på en anden side, vender tilbage, og listen er ikke som jeg efterlod den.
Avatar billede dr_chaos Nybegynder
14. februar 2006 - 08:18 #18
prøv at se om den kommer ind i if sætningen
Avatar billede speedpete Nybegynder
14. februar 2006 - 08:23 #19
Ja, det må den jo gøre: Denne version virker, så det må have noget at gøre med, at sessionerne ikke bliver lavet rigtigt om:

if (!IsPostBack && Session["GridViewDocSortExp"] != null && Session["GridViewDocSortDir"] != null)
        {
            GridView1.Sort("T5BTOT", SortDirection.Ascending);       
        }
Avatar billede dr_chaos Nybegynder
14. februar 2006 - 08:25 #20
prøv at udskrive hvad der står i sessionerne
Avatar billede speedpete Nybegynder
14. februar 2006 - 08:26 #21
just what i should til to do...
Avatar billede speedpete Nybegynder
14. februar 2006 - 08:31 #22
Session["GridViewDocSortExp"] er tom
Session["GridViewDocSortDir"] Ascending - og der bliver den, ligemeget hvordan jeg sorterer.
Avatar billede dr_chaos Nybegynder
14. februar 2006 - 08:33 #23
prøv at tjekke:
GridView1.SortDirection
GridView1.SortExpression;

i gridview sorted. for at se om værdierne bliver sat.
Avatar billede speedpete Nybegynder
14. februar 2006 - 08:57 #24
Problemet gemte sig her: EnableSortingAndPagingCallbacks="true". Det duer ikke - skal være false.
Avatar billede dr_chaos Nybegynder
14. februar 2006 - 08:59 #25
ok
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