Avatar billede lotze Nybegynder
15. september 2006 - 11:22 Der er 12 kommentarer og
1 løsning

Evt til sneppet. Javascript kørsel

Jeg har nu få styr på Template columns.

Men jeg kan stadig ikke lægge en attribut ind på den button kolonne som skal kører mit javascript.

Jeg aner ikke hvor jeg skal lægge den, da alle stedet siger den at den ikke kender noget til min knap (som befinder sig på template column).
Avatar billede snepnet Nybegynder
15. september 2006 - 11:35 #1
Du skal ikke lægge attributten på kolonnen, men direkte på knappen, og hvis du har indsat knappen i template - er der ingen ben i at få fat i den programmatisk.
Vis mig lige din template - så skal du få et eksempel.
Mvh
Avatar billede lotze Nybegynder
15. september 2006 - 11:41 #2
værsko, du får hele mit grid!

<asp:datagrid id="DataGrid1" style="Z-INDEX: 104; LEFT: 8px; POSITION: absolute; TOP: 80px" runat="server"
                        Width="432px" AutoGenerateColumns="False" OnSelectedIndexChanged="DataGrid1_SelectedIndexChanged">
                        <Columns>
                            <asp:BoundColumn DataField="Kategori" HeaderText="Kategori"></asp:BoundColumn>
                            <asp:BoundColumn DataField="AktieNavn" HeaderText="Aktie Navn"></asp:BoundColumn>
                            <asp:ButtonColumn Text="Opret Rating" HeaderText="V&#230;lg Aktie" CommandName="NewRating"></asp:ButtonColumn>
                            <asp:TemplateColumn HeaderText="Click">
                              <ItemTemplate>
                                  <asp:Button ID="btClick" runat="server" Text="bla"></asp:Button>
                              </ItemTemplate>
                           
                           
                            </asp:TemplateColumn>
                     
                        </Columns>
                    </asp:datagrid>
Avatar billede snepnet Nybegynder
15. september 2006 - 11:46 #3
Du kan abbonnere på ItemDataBound eventet, og i din eventhandler lave noget i denne stil:

if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
  Button b = e.Item.FindControl("btClick") as Button;
  if(b != null)
  {
    b.Attributes.Add("onclick","alert('blah');");
  }
}

Mvh
Avatar billede lotze Nybegynder
15. september 2006 - 11:54 #4
Hvad mener du med abbonnere ?
Avatar billede snepnet Nybegynder
15. september 2006 - 12:06 #5
Lige som når du "abbonnerer" på click-eventet på en knap.
Hvis du i designeren klikker på dit grid, kan du jo se dets properties i en propertyexplorer.
I det vindue sidder der et lille gult lyn oppe i toppen... Hvis du klikker på det, kan du se hvilke event du kan abbonnere på... Du kan så bare dobbeltklikke på eventnavnet, for at abbonnere på det, og oprette en handler i koden.
Mvh
Avatar billede lotze Nybegynder
15. september 2006 - 12:12 #6
YESSIR.

Nu virker det. Fedt!

Jeg har dog ikke helt forstået følgende

if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
Avatar billede snepnet Nybegynder
15. september 2006 - 12:28 #7
Det betyder bare at du kan vil gøre det på datarækker - header og footer er uinteressante i denne forbindelse.
Mvh
Avatar billede lotze Nybegynder
15. september 2006 - 12:32 #8
Ok. Min oprindelige koder virker dog ikke. Tror det er noget med at button laver et postback.
Meddelelsen fra alert går fint igennem. Men selve funktionaliteten som tilføjer "." til et html felt  Test <span id="ProgressMeter" ></span></DIV>  virker ikke

var iLoopCounter = 1;
var iMaxLoop = 6;
var iIntervalId;

function BeginPageLoad()
{
  alert('test');
  iIntervaldId = window.setInterval("iLoopCounter=UpdateProgressMeter(iLoopCounter, iMaxLoop)", 500);
}

function UpdateProgressMeter(iCurrentLoopCounter, iMaximumLoops)
{
if(iCurrentLoopCounter <= iMaximumLoops)
  {
  alert('fer');
  iCurrentLoopCounter +=1;
  ProgressMeter.innerText += ".";
  return iCurrentLoopCounter
  }
    else
  {
    ProgressMeter.innerText ="";
    return 1;
  }
}
Avatar billede lotze Nybegynder
15. september 2006 - 12:33 #9
alert('fer') går ikke igennem men alert('test') gør
Avatar billede snepnet Nybegynder
15. september 2006 - 12:49 #10
Du kan bare returnerer false :
b.Attributes.Add("onclick","alert('blah');return false;");
Så får du ikke noget postback.
Mvh
Avatar billede lotze Nybegynder
15. september 2006 - 12:54 #11
OK. Nu virker det perfekt. Smid et svar. Og tak for hjælpen det var virkeligt godt gået.
Avatar billede lotze Nybegynder
15. september 2006 - 13:21 #12
Dog har jeg tilføjet CommandName på samme måde som onClick og det virker ikke rigtigt.
Avatar billede snepnet Nybegynder
15. september 2006 - 13:31 #13
Et svar får du her - og velbekomme.
Hvis du vil angive CommandName programmatisk - er det bare på normal vis:


if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
  Button b = e.Item.FindControl("btClick") as Button;
  if(b != null)
  {
    b.Attributes.Add("onclick","alert('blah');");
    b.CommandName = "...";
  }
}

Mvh
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