我有一个GridView。我的应用程序连接到MySql数据库,收集数据,它应该在GridView中显示,但它不会。当我在Windows窗体应用程序中以相同的方式执行它 - 它填充DataGridView并没有问题。但是当我在任何浏览器中运行我的ASP.NET应用程序时 - 它显示标签和按钮,但是当我单击“填充网格”按钮时 - 它不会显示GridView。我将MySql.Data.dll和System.Data.dll复制到“bin”目录。没有编译错误。连接字符串没问题。
这是我的ASP.NET应用程序:
<%@ Page Language="C#" %>
<%@ Import Namespace = "MySql.Data.MySqlClient" %>
<%@ Assembly Name = "MySql.Data" %>
<%@ Import Namespace = "System.Data" %>
<%@ Assembly Name = "System.Data" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void btnFillData_Click(object sender, EventArgs e)
{
MySqlConnection conn = new MySqlConnection("Server=127.0.0.1;Database=autolot;Uid=root;Pwd=pass;");
conn.Open();
MySqlCommand cmd = new MySqlCommand("select * from inventory;", conn);
MySqlDataReader dr = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(dr);
conn.Close();
carsGridView.DataSource = dt;
carsGridView.DataBind();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Hello World!</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lblInfo" runat="server"
Text="Click on the button to fill the grid">
</asp:Label>
<br />
<br />
<asp:GridView ID="carsGridView" runat="server">
</asp:GridView>
<br />
<asp:Button ID="btnFillData" runat="server" Text="Fill grid" />
</div>
</form>
</body>
</html>
答案 0 :(得分:1)
点击处理程序实际上似乎已分配到按钮的点击事件。因此按钮导致回发,但不调用处理程序。 (我敢打赌,如果你调试当前代码,你会发现永远不会调用btnFillData_Click
方法。)
尝试明确指定:
<asp:Button ID="btnFillData" runat="server" Text="Fill grid" OnClick="btnFillData_Click" />
答案 1 :(得分:1)
您没有将该功能分配给HTML代码上的按钮,您需要将OnClick="btnFillData_Click"
添加到按钮标签