Im Codebehind erzeugte SqlDataSource u. Gridview führen zur Exception beim Paging

05/12/2008 - 12:10 von Stefan Dirks | Report spam
Hallo Newsgroup,

ich möchte gerne eine SqlDataSource und ein Gridview im Codebehind erzeugen.
Das Codebehind soll dabei auch Paging unterstützen. Soweit wird auch auf der
Seite alles korrekt angezeigt. Versuche ich jetzt aber die zweite Seite des
Gridviews anzuzeigen, erhalte ich folgende Fehlermeldung: "Die GridView
gvTest löste das Ereignis PageIndexChanging aus, das nicht behandelt wurde."

Beim Debuggen komme ich gar nicht erst in die Methode
"gv_PageIndexChanging". Hat vielleicht jemand eine Idee woran das liegen
könnte?


Gruß Stefan

Hier ist mein Code:

Private WithEvents m_gv As New System.Web.UI.WebControls.GridView
Private WithEvents m_ds As New System.Web.UI.WebControls.SqlDataSource

Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
Dim lb As New System.Web.UI.WebControls.Label

If Not Page.IsPostBack Then

'Titel hinzufügen
lb.ID = "lbTest"
DCPUniDetailGrids.Controls.Add(lb)
lb.Text = "<h1>Tàtigkeiten</h1>"

'Datenquelle hinzufügen
m_ds.ID = "dsTest"
DCPUniDetailGrids.Controls.Add(m_ds)
m_ds.ConnectionString = GML.Portal.Global.GetConnectionString()
m_ds.SelectCommand = "SELECT Pos_NR, taetigkeit, dauer FROM
Taetigkeiten"
m_ds.DataSourceMode = SqlDataSourceMode.DataSet

'Gridview hinzufügen
m_gv.ID = "gvTest"
DCPUniDetailGrids.Controls.Add(m_gv)
m_gv.PageSize = 3
m_gv.AllowPaging = True
m_gv.AutoGenerateColumns = True
m_gv.DataSource = m_ds
m_gv.DataBind()

End If


End Sub


Private Sub gv_PageIndexChanging(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.GridViewPageEventArgs) Handles
m_gv.PageIndexChanging

Dim gv As System.Web.UI.WebControls.GridView = CType(sender,
GridView)
gv.PageIndex = e.NewPageIndex
gv.DataBind()

End Sub
 

Lesen sie die antworten

#1 Patrick Finger
05/12/2008 - 13:01 | Warnen spam
Nun ja...

ich verwende keine SqlDataSources und versteh auch kein vb..

Aber ich kenne die GridView.

Wenn Du Paging aktivierst, musst du einen Event-Handler für
PageIndexChanging hinzufügen.

In C# sieht das so aus:

protected void Page_Load(object sender, EventArgs e)
{
this.grd.PageIndexChanged += new
EventHandler(grd_PageIndexChanged);
}

void grd_PageIndexChanged(object sender, EventArgs e)
{
}

Wobei man das Hinzufügen auch deklarativ im aspx machen kann.

HTH, Gruss

Ähnliche fragen