日期:2014-05-18  浏览次数:20502 次

修改孟子e章的“使用 AJAX,局部刷新 GridView 进行数据绑定的简单实现”两个问题
代码如下:

有两个问题,一个是gridivew里的选取没有作用,linkbtnSales_Click里的alert没有弹出来;
另一个问题很奇怪,整个语句里只有一个textbox控件:ID="txtitemnum",运行的时候在txtitemnum里输入字母页面会出现两个textbox,这也太诡异了吧,稍微贴运行后的源文件

<%@ Page Language="C#" %>

<!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 Page_Load(object sender, EventArgs e)
  {
  string id = Request.QueryString["id"];
  if (Request.QueryString["id"] != null)
  {
  Response.ClearContent();
  string sql = "select distinct 成品代码,成品名称 from aaa where 成品代码='" + id + "'";

  zs.Open(sql);
  GvData.DataSource = zs.m_table;
  GvData.DataBind();
  zs.Close();
  }
  }

  protected void linkbtnSales_Click(object sender, EventArgs e)
  {
  string id = (sender as LinkButton).CommandArgument;
  Response.Write("<script>alert(id);<"+"/script>");
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
  <title>使用 AJAX,局部刷新 GridView 进行数据绑定的简单实现</title>
  <script type="text/javascript">
  function GetData() {
  document.getElementById("d").innerHTML = "正在读取数据……";
  h = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP");
  var id = document.getElementById("<%=txtitemnum.ClientID%>").value;
  h.open("GET", '<%=Request.FilePath %>?id=' + id, true);
  h.onreadystatechange = function () {
  if (h.readyState == 4) {
  if (h.status >= 200 && h.status < 300) {
  document.getElementById("d").innerHTML = h.responseText;
  }
  else {
  document.getElementById("d").innerHTML = "<h2>数据操作错误:</h2>" + h.responseText;
  }
  }
  }
  h.send(null);
  }
  alert("这个提示,只出现在第一次打开页面。");
  </script>
</head>
<body>
  <form id="form1" runat="server">
  <asp:TextBox ID="txtitemnum" onkeyup="GetData()" runat="server" ></asp:TextBox>
   
  <asp:GridView ID="GvData" runat="server" Width="99%" AutoGenerateColumns="False"
  CssClass="gridview" EmptyDataText="没有数据" >
  <PagerSettings Visible="False" />
  <Columns>
  <asp:BoundField HeaderText="成品代码" DataField="成品代码" ><ItemStyle HorizontalAlign="Center" /></asp:BoundField> 
  <asp:BoundField HeaderText="成品名称" DataField="成品名称" ><ItemStyle HorizontalAlign="Center" /></asp:BoundField>
  <asp:TemplateField HeaderText="选取"><ItemTemp