C# listbox滚动条在不使用任何命令的情况下移动
我正在开发一个ASP.NET实践网站,其中包含一个列表框。当我选择一个项目时,滚动条突然移动。为什么会这样?这是常见的吗?还是我做错了什么?。。。。。。。。。我正在发布问题的截图C# listbox滚动条在不使用任何命令的情况下移动,c#,asp.net,C#,Asp.net,我正在开发一个ASP.NET实践网站,其中包含一个列表框。当我选择一个项目时,滚动条突然移动。为什么会这样?这是常见的吗?还是我做错了什么?。。。。。。。。。我正在发布问题的截图 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <html xmlns="http:/
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Refresh" />
<br />
<br />
<asp:ListBox ID="ListBox1" runat="server" AutoPostBack="True" Height="120px" OnSelectedIndexChanged="ListBox1_SelectedIndexChanged" Width="202px"></asp:ListBox>
<br />
<br />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
<br />
<asp:TextBox ID="TextBox2" runat="server" OnTextChanged="TextBox2_TextChanged"></asp:TextBox>
<br />
<br />
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Insert" />
<asp:Button ID="Button3" runat="server" OnClick="Button3_Click" Text="Update" />
<asp:Button ID="Button4" runat="server" OnClick="Button4_Click" Text="Delete" />
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
SqlConnection cnn = new SqlConnection("Initial Catalog=Northwind;Data Source=localhost;Integrated Security=SSPI;");
protected void Page_Load(object sender, EventArgs e)
{
}
protected void refresh()
{
ListBox1.Items.Clear();
cnn.Open();
SqlCommand cmd = new SqlCommand("SELECT FirstName,LastName,EmployeeID FROM Employees", cnn);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
ListBox1.Items.Add(new ListItem(dr.GetString(0) + " " + dr.GetString(1),dr.GetInt32(2).ToString()));
}
}
cnn.Close();
}
protected void Button1_Click(object sender, EventArgs e) //refresh
{
refresh();
}
protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
cnn.Open();
SqlCommand cmd = new SqlCommand("SELECT FirstName,LastName FROM Employees WHERE EmployeeID = @numara", cnn);
cmd.Parameters.AddWithValue("@numara", ListBox1.SelectedValue);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
TextBox1.Text = dr.GetString(0);
TextBox2.Text = dr.GetString(1);
}
}
cnn.Close();
}
protected void TextBox2_TextChanged(object sender, EventArgs e)
{
}
protected void Button2_Click(object sender, EventArgs e) //insert
{
cnn.Open();
SqlCommand cmd = new SqlCommand("INSERT INTO Employees (FirstName, LastName) VALUES (@CalisanAdi, @CalisanSoyadi)", cnn);
cmd.Parameters.AddWithValue("@CalisanAdi", TextBox1.Text);
cmd.Parameters.AddWithValue("@CalisanSoyadi", TextBox2.Text);
cmd.ExecuteNonQuery();
cnn.Close();
refresh();
}
protected void Button3_Click(object sender, EventArgs e) //update
{
cnn.Open();
SqlCommand cmd = new SqlCommand("UPDATE Employees SET FirstName = @CalisanAdi , LastName = @CalisanSoyadi WHERE EmployeeID = @numara", cnn);
cmd.Parameters.AddWithValue("@numara", ListBox1.SelectedValue);
cmd.Parameters.AddWithValue("@CalisanAdi", TextBox1.Text);
cmd.Parameters.AddWithValue("@CalisanSoyadi", TextBox2.Text);
cmd.ExecuteNonQuery();
cnn.Close();
refresh();
}
protected void Button4_Click(object sender, EventArgs e) //delete
{
cnn.Open();
SqlCommand cmd = new SqlCommand("DELETE FROM Employees WHERE EmployeeID = @numara", cnn);
cmd.Parameters.AddWithValue("@numara", ListBox1.SelectedValue);
cmd.ExecuteNonQuery();
cnn.Close();
refresh();
}
}
使用制度;
使用System.Collections.Generic;
使用System.Data.SqlClient;
使用System.Linq;
使用System.Web;
使用System.Web.UI;
使用System.Web.UI.WebControl;
公共部分类\u默认值:System.Web.UI.Page
{
SqlConnection cnn=新SqlConnection(“初始目录=北风;数据源=本地主机;集成安全性=SSPI;”);
受保护的无效页面加载(对象发送方、事件参数e)
{
}
受保护的无效刷新()
{
ListBox1.Items.Clear();
cnn.Open();
SqlCommand cmd=newsqlcommand(“从雇员中选择FirstName、LastName、EmployeeID”,cnn);
SqlDataReader dr=cmd.ExecuteReader();
如果(哈斯罗博士)
{
while(dr.Read())
{
ListBox1.Items.Add(新的ListItem(dr.GetString(0)+“”+dr.GetString(1)、dr.GetInt32(2.ToString());
}
}
cnn.Close();
}
受保护的无效按钮1\u单击(对象发送者,事件参数)//刷新
{
刷新();
}
受保护的无效列表框1\u SelectedIndexChanged(对象发送方,事件参数e)
{
cnn.Open();
SqlCommand cmd=newsqlcommand(“从EmployeeID=@numara的雇员中选择FirstName和LastName”,cnn);
cmd.Parameters.AddWithValue(“@numara”,ListBox1.SelectedValue);
SqlDataReader dr=cmd.ExecuteReader();
如果(哈斯罗博士)
{
while(dr.Read())
{
TextBox1.Text=dr.GetString(0);
TextBox2.Text=dr.GetString(1);
}
}
cnn.Close();
}
受保护的void TextBox2\u TextChanged(对象发送方,事件参数e)
{
}
受保护的无效按钮2\u单击(对象发送者,事件参数)//插入
{
cnn.Open();
SqlCommand cmd=new-SqlCommand(“插入员工(FirstName,LastName)值(@CalisanAdi,@CalisanSoyadi)”,cnn;
cmd.Parameters.AddWithValue(“@CalisanAdi”,TextBox1.Text);
cmd.Parameters.AddWithValue(“@CalisanSoyadi”,TextBox2.Text);
cmd.ExecuteNonQuery();
cnn.Close();
刷新();
}
受保护的无效按钮3\u单击(对象发送者,事件参数)//更新
{
cnn.Open();
SqlCommand cmd=new-SqlCommand(“更新员工集FirstName=@CalisanAdi,LastName=@CalisanSoyadi,其中EmployeeID=@numara”,cnn);
cmd.Parameters.AddWithValue(“@numara”,ListBox1.SelectedValue);
cmd.Parameters.AddWithValue(“@CalisanAdi”,TextBox1.Text);
cmd.Parameters.AddWithValue(“@CalisanSoyadi”,TextBox2.Text);
cmd.ExecuteNonQuery();
cnn.Close();
刷新();
}
受保护的无效按钮4\u单击(对象发送者,事件参数)//删除
{
cnn.Open();
SqlCommand cmd=newsqlcommand(“从EmployeeID=@numara的雇员中删除”,cnn);
cmd.Parameters.AddWithValue(“@numara”,ListBox1.SelectedValue);
cmd.ExecuteNonQuery();
cnn.Close();
刷新();
}
}
我认为这是因为当您在列表中选择一个项目时,页面被发回,这是ASP.net的预期行为。页面正在刷新,您之前选择的项目正在列表框中被选中。请发布一些信息code@MahmoudFarahat支票,请。