Avatar billede hooh Nybegynder
17. september 2010 - 18:03 Der er 3 kommentarer og
1 løsning

kalde metode i parent fra usercontrol

Hej

Jeg har et gridview på min aspx side og i den kalder jeg en usercontrol.
[parent.aspx]
<Columns>
  <asp:TemplateField>
    <ItemTemplate>
<uc1:Departments ID="Departments1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>

På den usercontrol har jeg også et gridview med en linkbutton:

[usercontrol.ascx]
<Columns>
<ItemTemplate>
....
<asp:linkbutton ID="Linkbutton1" runat="server" text='Rediger' CommandArgument="<%# Container.DataItemIndex %>"
                        commandname="EditMeeting" />
...
</ItemTemplate>
</asp:TemplateField>
</Columns>

    public void updateGrid(Object src, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "EditMeeting")
        {
            int index = Convert.ToInt32(e.CommandArgument);

            int Id = Int32.Parse(grid.DataKeys[index].Value.ToString());

CallParentMethod(Id)
        }

    }


Hvordan kan jeg fra min usercontrol kalde en metode på min parent?

Der skal lige gentages at usercontrolen i parent også ligger i en grid.

Da den lå udenfor grid kunne jeg ved hjælp af nogle ekspempler sende et event tilbage, men det kunne jeg ikke få lov til i en grid.

Håber nogen kan hjælpe mig - jeg har siddet fast med det længe..
Avatar billede lasserasch Juniormester
17. september 2010 - 18:35 #1
Kan du ikke forklare hvorfor du gerne vil gøre dette?

Jeg ville personligt ligge metoden i et lib. hvor alle usercontrols, aspx sider osv kunne kalde metoden.


Mvh.
Lasse
Avatar billede hooh Nybegynder
17. september 2010 - 18:45 #2
Tjaa det lyder da også som en god ide.

Jeg skal have åbnet en thickbox, så jeg skal registrere noget javascript på siden og det havde jeg tænkt mig at gøre fra aspx-siden.

Jeg ville kalde nedenstående metode på min parentside :
ThickBox_Demo.Common.ShowDialog(this, "Simple Dialog Box", 300, 150, "simpleDialog", false);

    public static void ShowDialog(Page page, string title, int width, int height, string divTag, bool modal)
    {
      string script = "$(document).ready(function() {tb_show('";
      script += title + "', '#TB_inline?height=" + height.ToString();
      script += "&amp;width=" + width.ToString();
      script += "&amp;modal=" + modal.ToString().ToLower();
      script += "&amp;inlineId=" + divTag + "', null);});";

      ScriptManager.RegisterStartupScript(page, page.GetType(), "", script, true);
    }

Hvordan ville det gøre med et lib-klasse?
Avatar billede Syska Mester
17. september 2010 - 21:37 #3
Du kan vel altid få fat i din Parent page ... hvis det er forbi du skal have fat i SciprtManager.

page.Parent.Parent ... de er jo hierarkisk bygget op ... og så har du vel din script manager.

mvh
Avatar billede hooh Nybegynder
16. november 2010 - 17:58 #4
løste det med Event Handlers
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