Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Messagebox när jag klickar på delete i en DataGrid

Postades av 2005-02-02 22:35:50 - Tyronne Engström, i forum asp.net generellt, Tråden har 16 Kommentarer och lästs av 417 personer

Hej!

jo i datagriden kan du aktivera en delete funktion vilket jag använder. Och jag vill nu att användaren skall få en fråga om han vill radera posten. Allts en YES och NO MessageBox. OCh jag måste kunna fånga upp vad användaren klickar på för att kunna styra honom rätt.

Hur gör man det i från CodeBehind


Alltså jag använder mig av metoden i datagriden
<code>
public void EditCompany(object sender, DataGridCommandEventArgs e)
</code>

/Tyronne


Svara

Sv: Messagebox när jag klickar på delete i en DataGrid

Postades av 2005-02-03 10:04:50 - Martin Emanuelsson

Inte säker på att jag har förstått din fråga riktigt rätt men om det är så att du har en Button för delete av användare i din datagrid och vill få upp ett Confirm-fönster (alltså JavaScript) så kan du göra så här:

Protected Overrides Sub OnPreRender(ByVal e As System.EventArgs)
MyBase.OnPreRender(e)
Dim lnk As LinkButton
Dim itm As DataGridItem
For Each itm In DataGrid1.Items
lnk = DirectCast(itm.FindControl("lnkDelete"), LinkButton)
If Not lnk Is Nothing Then lnk.Attributes.Add("onclick", "return window.confirm('Are you sure that you want to delete this item?')")
Next
End Sub

Koden gäller som du ser LinkButtons men jag tror det funkar på liknande sätt med en Button. Det här triggar ju ingen postback alls om användaren väljer No så det kanske inte riktigt är så som du tänkt dig eller?


Svara

Sv:Messagebox när jag klickar på delete i en DataGrid

Postades av 2005-02-03 10:12:49 - Tyronne Engström

Japp det är det... Skall kolla på, måste bara omvandla den till C# först..

Men jag återkommer

/Tyronne


Svara

Sv: Messagebox när jag klickar på delete i en DataGrid

Postades av 2005-02-03 10:30:32 - Tyronne Engström

ok jag har översatt det (tror jag)

<code>
protected override void OnPreRender(System.EventArgs e)
{
MyBase.OnPreRender(e);
DataGridItem itm ;

foreach(LinkButton lnk in dbgListAll.Item)
{
lnk = DirectCast(itm.FindControl("lnkDelete"), LinkButton);
if (lnk == "" )
{
lnk.Attributes.Add("onclick", "return window.confirm('Are you sure that you want to delete this item?')") ;
}
}

}
</code>

Min fråga hur kommer nu detta att fungera. Eller kan jag flytta in delar av det i min
<code>
public void EditCompany(object sender, DataGridCommandEventArgs e)
{
// Hämtar idnumret på användaren och gör om den till en Guid
Guid CompanyID = new Guid(dbgListAll.DataKeys[e.Item.ItemIndex].ToString());
Cache["ConnectID"] = CompanyID;

// Omdirigerar till att kunna skapa nytt företag
Response.Redirect("Company.aspx?SaveValue=1");

}
</code>

För det är i denna metoden som jag kallar på delete metoden

/Tyronne


Svara

Sv:Messagebox när jag klickar på delete i en DataGrid

Postades av 2005-02-03 10:45:58 - Martin Emanuelsson

Nja det funkar som så att funktionen du fick från mig kommer att lägga till ett OnClick-anrop på Delete knapparna i din DataGrid. Om användaren klickar Yes så kommer sidan postas om och din EditCompany körs, om den är kopplad till nåt event på DataGriden, exempelvis ItemCommand? Om användaren svara No så händer inget mer än att popupen stängs igen, och sidan laddas alltså inte om.

Funktionen ska inte läggas in i nån annan funktion som du har utan den ska vara en helt fristående funktion i din aspx.cs fil.

En kommentar bara, var ett tag sen jag programmerade C# men jag undrar lite om det räcker med att göra
<code>
if (lnk == "" )
</code>

tror du kanske får kolla så att lnk inte är Null istället för ""?

Dessutom ska det vara Not lnk == "" eller lnk != "", alltså om "inte lnk är tom" så ska du lägga till attributet på knappen.


Svara

Sv: Messagebox när jag klickar på delete i en DataGrid

Postades av 2005-02-03 10:50:43 - Tyronne Engström

Ok...Då hänger jag med...


angående sista har du nog rätt.... Skall ordna det

/Tyronne


Svara

Sv:Messagebox när jag klickar på delete i en DataGrid

Postades av 2005-02-03 10:56:16 - Tyronne Engström

vad kommer DirectCast ifrån. Är det en metod som finns i framework eller vad är det?


Svara

Sv: Messagebox när jag klickar på delete i en DataGrid

Postades av 2005-02-03 11:18:06 - Martin Emanuelsson

Ah, my bad, verkar vara en VB-grej bara. (http://www.codeproject.com/dotnet/CheatSheetCastingNET.asp)

Testa istället nåt i stil med (list osäker på casting i C#):

<code>
lnk = (LinkButton)itm.FindControl("lnkDelete");
</code>


Svara

Sv:Messagebox när jag klickar på delete i en DataGrid

Postades av 2005-02-03 13:41:21 - Tyronne Engström

Hmm...


nu ser min kod ut så här
<code>
protected override void OnPreRender(System.EventArgs e)
{
base.OnPreRender(e);
DataGridItem itm ;
LinkButton lnk;

foreach(lnk in dbgListAll.Items)
{
lnk = (LinkButton)itm.FindControl("Delete");

if (lnk != null )
{
lnk.Attributes.Add("onclick", "return window.confirm('Are you sure that you want to delete this item?')") ;
}
}

}
</code>

Och systemet gnäller för c:\inetpub\wwwroot\WebClient\Admin\CompanyList.aspx.cs(272): Type and identifier are both required in a foreach statement. dvs att

foreach(lnk in dbgListAll.Items)

dvs lnk inte är deklarerad, Men gör jag det så gnäller den på

LinkButton lnk;

att den redan ärt deklarerad.

några förslag

/Tyronne


Svara

Sv: Messagebox när jag klickar på delete i en DataGrid

Postades av 2005-02-03 14:12:46 - Martin Emanuelsson

I foreach:en så är det inte varje länk (lnk) utan varje DataGridItem (itm)du ska kolla, testa det här istället.

<code>
protected override void OnPreRender(System.EventArgs e)
{
base.OnPreRender(e);
LinkButton lnk;

foreach(DataGridItem itm in dbgListAll.Items)
{
lnk = (LinkButton)itm.FindControl("Delete");

if (lnk != null )
{
lnk.Attributes.Add("onclick", "return window.confirm('Are you sure that you want to delete this item?')") ;
}
}

}
</code>


Svara

Sv:Messagebox när jag klickar på delete i en DataGrid

Postades av 2005-02-03 15:59:49 - Tyronne Engström

Ok.. Nu får jag inga felmmedelande men metoden aktiveras inte när jag klickar på Delete länken i DataGriden.

/Tyronne


Svara

Sv: Messagebox när jag klickar på delete i en DataGrid

Postades av 2005-02-03 16:32:27 - Martin Emanuelsson

Vad menar du med metoden i det här fallet? Dyker inte popupen upp eller anropas inte EditCompany?


Svara

Sv:Messagebox när jag klickar på delete i en DataGrid

Postades av 2005-02-03 16:45:18 - Tyronne Engström

DeleteCommand anropas, men det kommer inte upp en popUp

Allstå denna eventhanteraren skall altså känna av att jag klickar på DeleteKnappen i dataGriden, jag skall inte kalla på den för att den skall hojat igång?

/Tyronne


Svara

Sv: Messagebox när jag klickar på delete i en DataGrid

Postades av 2005-02-03 16:51:09 - Martin Emanuelsson

Har din Button id=Delete? Om du gör en "view source", kan du se om det "sitter" nåt onclick-event på din delete-knapp? Har du debuggat igenom sidan och sett att den går in i funktionen OnPreRender? Några punkter att kolla på kanske.

Skicka gärna din DataGrid-kod också så kan vi kolla på det.


Svara

Sv:Messagebox när jag klickar på delete i en DataGrid

Postades av 2005-02-03 17:38:23 - Tyronne Engström

Här kommer all kod jag tror du behöver.

<code>
/// <summary>
/// Raderar en koppling
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void DeleteCompany(object sender,DataGridCommandEventArgs e)
{
// Hämtar idnumret från Gridden och gör om den till en Guid
Guid NewId = new Guid(dbgListAll.DataKeys[e.Item.ItemIndex].ToString());
DataBind();

// Kallar på metod i Cuser-klassen
Pagelogic.CCompany obj = new Pagelogic.CCompany();
//Returenrar om det gick bra
int resultValue = obj.DeleteFromDatabaseCon(NewId);

// Meddelande visas beroende på reultat
if (resultValue == -1)
lblMessage.Text ="Kopplingen är borttagen";

}
</code>


<code>
protected override void OnPreRender(System.EventArgs e)
{
base.OnPreRender(e);
LinkButton lnk;

foreach(DataGridItem itm in dbgListAll.Items)
{
lnk = (LinkButton)itm.FindControl("Delete");

if (lnk != null )
{
lnk.Attributes.Add("onclick", "return window.confirm('Are you sure that you want to delete this item?')") ;
}
}

}
</code>

<code>
<asp:DataGrid id="dbgListAll" runat="server" Width="541px" Font-Size="9pt" Font-Names="Verdana"
BackColor="White" DataKeyField="ConnectID" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px"
CellPadding="3" GridLines="Horizontal" AutoGenerateColumns="False" AllowPaging="True" OnEditCommand="EditCompany"
OnDeleteCommand="DeleteCompany" AllowSorting="True" HorizontalAlign="Center">
<SelectedItemStyle Font-Size="9pt" Font-Names="Verdana" Font-Bold="True" ForeColor="#F7F7F7" BackColor="#738A9C"></SelectedItemStyle>
<EditItemStyle Font-Size="9pt" Font-Names="Verdana" Font-Bold="True"></EditItemStyle>
<AlternatingItemStyle Font-Size="9pt" Font-Names="Verdana" BackColor="#F7F7F7"></AlternatingItemStyle>
<ItemStyle Font-Size="9pt" Font-Names="Verdana" ForeColor="#4A3C8C" BackColor="#E7E7FF"></ItemStyle>
<HeaderStyle Font-Size="Smaller" Font-Names="Verdana" Font-Bold="True" ForeColor="#F7F7F7" BackColor="#405368"></HeaderStyle>
<FooterStyle ForeColor="#4A3C8C" BackColor="#B5C7DE"></FooterStyle>
<Columns>
<asp:BoundColumn DataField="Company" HeaderText="F&#246;retag">
<HeaderStyle Width="150px"></HeaderStyle>
<ItemStyle Font-Size="8pt" Font-Names="Verdana" HorizontalAlign="Left"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="Region" HeaderText="Region">
<HeaderStyle Width="150px"></HeaderStyle>
<ItemStyle Font-Size="8pt" Font-Names="Verdana" HorizontalAlign="Left"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="productCategory" HeaderText="Branch" DataFormatString="{0:C}">
<HeaderStyle HorizontalAlign="Left" Width="150px"></HeaderStyle>
<ItemStyle Font-Size="8pt" Font-Names="Verdana" HorizontalAlign="Left"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="PlaceName" HeaderText="Stad">
<HeaderStyle Width="150px"></HeaderStyle>
<ItemStyle Font-Size="8pt" Font-Names="Verdana"></ItemStyle>
</asp:BoundColumn>
<asp:ButtonColumn Text="&lt;img border=0 alt='Editera koppling' src=Images/imgEdit.gif&gt;" CommandName="Edit">
<HeaderStyle Width="40px"></HeaderStyle>
<ItemStyle Font-Size="9pt" Font-Names="Verdana"></ItemStyle>
</asp:ButtonColumn>
<asp:ButtonColumn Text="&lt;img border=0 alt='Radera koppling' src=Images/imgDelete.gif&gt;" CommandName="Delete">
<HeaderStyle Width="40px"></HeaderStyle>
<ItemStyle Font-Size="9pt" Font-Names="Verdana"></ItemStyle>
</asp:ButtonColumn>
</Columns>
<PagerStyle Font-Size="Smaller" Font-Names="Verdana" HorizontalAlign="Right" ForeColor="#4A3C8C"
BackColor="DarkGray" Mode="NumericPages"></PagerStyle>
</asp:DataGrid>
</code>


Hoppas du hittar något

/tyronne


Svara

Sv: Messagebox när jag klickar på delete i en DataGrid

Postades av 2005-02-04 08:46:26 - Martin Emanuelsson

Aha... Du kör en Button-kolumn, vet inte varför egentligen men jag brukar inte använda såna särskilt mkt... För insnöad på hur jag brukar göra så jag tänkte inte på att det finns andra sätt än mitt sätt :-) Eventuellt måste du göra om den kolumnen till en TemplateColumn för att min lösning ska kunna funka...

Alltså jag skulle byta din
<code>
<asp:ButtonColumn Text="&lt;img border=0 alt='Radera koppling' src=Images/imgDelete.gif&gt;" CommandName="Delete">
<HeaderStyle Width="40px"></HeaderStyle>
<ItemStyle Font-Size="9pt" Font-Names="Verdana"></ItemStyle>
</asp:ButtonColumn>
</code>
Mot nåt i stil med:
<code>
<asp:TemplateColumn>
<ItemTemplate>
<asp:linkbutton id="Delete" runat="server" Commandname="Delete">
<img border="0" alt="Radera koppling" src="Images/imgDelete.gif"></asp:linkbutton>
</ItemTemplate>
<HeaderStyle Width="40px"></HeaderStyle>
<ItemStyle Font-Size="9pt" Font-Names="Verdana"></ItemStyle>
</asp:TemplateColumn>
</code>

Testade lite här och fick det att funka iaf. The story continues :-)


Svara

Sv:Messagebox när jag klickar på delete i en DataGrid

Postades av 2005-02-04 09:06:13 - Tyronne Engström

Ok...

Skall testa detta återkommer

/Tyronne


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 607
27 953
271 708
680
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies