ASP.NET GridView innerhalb Scrollable Div: Scrollen Sie zu SelectedIndexHTML

HTML-Programmierer
Anonymous
 ASP.NET GridView innerhalb Scrollable Div: Scrollen Sie zu SelectedIndex

Post by Anonymous »

Ich habe eine GridView, die in einem scrollbaren Div enthalten ist. Ich habe auch eine Schaltfläche, die eine Zeile in dieser GirdView basierend auf dem Text einer TextBox auf der Seite auswählt. Die Zeile ist einwandfrei ausgewählt, aber ich kann das Div nicht dazu bringen, programmgesteuert zur ausgewählten Zeile zu scrollen. Ich habe mehrere Methoden mit der „scrollTop“-Methode von JavaScript ausprobiert, kann sie aber aus irgendeinem Grund nicht richtig zum Laufen bringen. Hier ist mein bisheriger Code (ein Teil des Codes für die Methode „btnGo_OnClick“ stammt aus einer Antwort auf eine ähnliche Frage in den asp.net-Foren, scheint aber bei mir nicht zu funktionieren):

Die .aspx-Datei:

Code: Select all















&nbsp







Search by Last Name:

&nbsp





Und die .aspx.cs-Datei:

Code: Select all

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text.RegularExpressions;

namespace WebApplication1
{
public partial class WebForm1 : System.Web.UI.Page
{

protected void Page_Load(object sender, EventArgs e)
{
}

protected void btnDelete_OnClick(object sender, EventArgs e)
{
Button b = (Button)sender;
GridViewRow containingRow = (GridViewRow)b.NamingContainer;
String strEmail = containingRow.Cells[4].Text;
DataSource1.DeleteCommand = "DELETE FROM [CoursesTaken] WHERE [StudentID] = '" + strEmail + "'";
DataSource1.Delete();
DataSource1.DeleteCommand = "DELETE FROM [Students] WHERE [Email] = '" + strEmail + "'";
DataSource1.Delete();
StudentList.DataBind();
}

protected void btnEdit1_OnClick(object sender, EventArgs e)
{
Button b = (Button)sender;
GridViewRow containingRow = (GridViewRow)b.NamingContainer;
Session["Email"] = containingRow.Cells[4].Text;
Response.Redirect("~/StudentEdit.aspx");
}

protected void btnGo_OnClick(object sender, EventArgs e)
{
int i = 0;
foreach (GridViewRow rowItem in StudentList.Rows)
{
if (rowItem.Cells[0].Text.StartsWith(txtSearch.Text))
{
StudentList.SelectedIndex = i;
int intScrollTo = this.StudentList.SelectedIndex * (int)this.StudentList.RowStyle.Height.Value;
string strScript = "";
strScript += "var gridView = document.getElementById('" + this.StudentList.ClientID + "');\n";
strScript += "if (gridView != null && gridView.parentElement != null &&  gridView.parentElement.parentElement != null)\n";
strScript += "  gridView.parentElement.parentElement.scrollTop = " + intScrollTo + ";\n";
ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "btnGo_OnClick", strScript, true);
break;
}
i++;
}
}
}
}

Kann jemand erklären, warum es nicht wie erwartet funktioniert?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post