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


Hur får jag click eventet för en knapp i en gridview av fungera i en usercontrol

Postades av 2007-01-09 15:39:19 - Jesper Enevold, i forum asp.net generellt, Tråden har 1 Kommentarer och lästs av 632 personer

I en usercontrol har jag en gridview med en kolumn med Update knappar.

Usercontrol:en läggs till dynamiskt eftersom antalet usercontrol:er bestäms i runtime.

Jag använder mig av UpdatePanel runt gridviewen då jag endast vill ladda om den istället för hela sidan.

Därför får jag lägga till UpdatePanel dynamiskt samtidigt som usercontrol:en

protected void btnAddGV_Click(object sender, EventArgs e)
{
//Lägg till gridviewen dynamiskt
Control wuc = LoadControl("WebUserControl.ascx");

//Skapa UpdatePanel
UpdatePanel up1 = new UpdatePanel();
up1.ID = "UpdatePanel1";
//Lägg till user kontrollen till UpdatePanel
up1.ContentTemplateContainer.Controls.Add(wuc);

//Lägg till UpdatePanel till Placeholdern
PlaceHolder1.Controls.Add(up1);

}

Just nu har jag en knapp som heter btnAddGV som kör ovanstående kod när man klickar på den.

GridViewen laddas upp på sidan...

När jag klickar på en knapp på en rad i gridviewen vill jag att eventet aktiveras/körs för btnUpdate_Click (se koden nedan) men det händer inte i detta läge.

Vad kan detta bero på?

/Jesper

Koden ser ut som följer:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />

<div><asp:Label ID="Label1" runat="server" Text="Lägg till en tabell..."></asp:Label>
<asp:Button ID="btnGRV" runat="server" Text="Button" OnClick="btnAddGV_Click" />
<asp:PlaceHolder ID="PlaceHolder1" runat="server">
</asp:PlaceHolder>
</div>
<br />
</form>
</body>
</html>


using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

protected void btnAddGV_Click(object sender, EventArgs e)
{
//Lägg till gridviewen dynamiskt
Control wuc = LoadControl("WebUserControl.ascx");

//Skapa UpdatePanel
UpdatePanel up1 = new UpdatePanel();
up1.ID = "UpdatePanel1";
//Lägg till user kontrollen till UpdatePanel
up1.ContentTemplateContainer.Controls.Add(wuc);

//Lägg till UpdatePanel till Placeholdern
PlaceHolder1.Controls.Add(up1);

}
}

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" DataKeyNames="ProductID">
<Columns>
<asp:TemplateField ItemStyle-Width="20">
<HeaderTemplate></HeaderTemplate>
<ItemTemplate>
<asp:Button ID="btnUpdate" runat="server" Text="Update" OnClick="btnUpdate_Click" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<Columns>
<asp:ButtonField CommandName="Update" Text="Update" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
SelectCommand="SELECT [ProductID], [ProductName], [UnitPrice], [UnitsInStock] FROM [Products] WHERE ([ProductID] = @ProductID)">
<SelectParameters>
<asp:QueryStringParameter Name="ProductID" QueryStringField="ProductID" Type="Int32" DefaultValue="1" />
</SelectParameters>
</asp:SqlDataSource>




using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class WebUserControl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
GridView1.RowCommand += new GridViewCommandEventHandler(GridView1_RowCommand);
}

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Update")
{
string a = "a";
}
//throw new Exception("The method or operation is not implemented.");
}

protected void btnUpdate_Click(object sender, EventArgs e)
{
Button btnUpdate = (Button)sender;

GridViewRow gvr = (GridViewRow)btnUpdate.NamingContainer;

GridView gv = (GridView)gvr.NamingContainer;

//Ta fram värdet för den här raden
int intTestcaseID = (int)gv.DataKeys[gvr.RowIndex].Value;

//...
}
}


Svara

Sv: Hur får jag click eventet för en knapp i en gridview av fungera i en usercon

Postades av 2007-01-10 09:52:14 - Jesper Enevold

Detta är saxat ur en mycket bra artikelserie "TRULY Understanding Dynamic Controls"
http://weblogs.asp.net/infinitiesloop/archive/2006/10/16/TRULY-Understanding-Dynamic-Controls-_2800_Part-3_2900_.aspx

"A common mistake made by developers is to add a dynamic control to the tree only in response to some event. For example, lets say you have a button on the form that reads, "Click here to enter your name", and when clicked you want to dynamically add a TextBox for them to enter it into:

private void cmdEnterName_Click(object sender, EventArgs e) 
{    
    TextBox txtFirstName = new TextBox();    
    this.Controls.Add(txtFirstName);
}


If you try it, you'll see the TextBox like you expect. But on the next postback, unless the user clicks this very same button a second time, the TextBox will cease to exist!"

Så när jag laddar usercontroll:en i LoadPage istället för via en knapp så fungerar eventen!

/Jesper


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 619
27 953
271 709
477
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