ASP.NET编辑一个字段而不重新加载整个Listview

时间:2017-08-01 08:31:25

标签: asp.net listview editing

我有一个Listview和一个下拉列表:

  <asp:ListView ID="lv_ClassTeacher" runat="server" vertical-align="top" OnSelectedIndexChanged="lv_ClassTeacher_SelectedIndexChanged" OnSelectedIndexChanging="lv_ClassTeacher_SelectedIndexChanging" DataKeyNames ="ClassID" OnPagePropertiesChanged="lv_ClassTeacher_PagePropertiesChanged" OnPagePropertiesChanging="lv_ClassTeacher_PagePropertiesChanging" OnItemDataBound="lv_ClassTeacher_ItemDataBound" OnItemCommand="lv_ClassTeacher_ItemCommand">
        <LayoutTemplate>
           <table border="1">
              <tr runat="server">
                 <th runat="server"></th>
                 <th runat="server">Class</th>
                 <th runat="server">Teacher</th>
              </tr>
              <tr runat="server" id="itemPlaceholder" />
           </table>
        </LayoutTemplate>
        <ItemTemplate>
            <tr>
            <td><asp:Button ID="cmd_View" runat="server" CommandName="Select" Text="View" Height="21px" /></td>
            <td><div runat="server" id="area"><asp:Label ID="Label1" runat="server" Text='<%#Eval("Class") %>' /></div></td>
            <td><asp:Label ID="Label2" runat="server" Text='<%#Eval("Teacher") %>' /></td>
            </tr>
        </ItemTemplate>
   </asp:ListView>
   <asp:DropDownList ID="cb_SwitchTeacher" runat="server" AutoPostBack = "true" OnSelectedIndexChanged="cb_SwitchTeacher_SelectedIndexChanged">

背后的部分代码:

  conn.Open();
  using (MySqlCommand sqlCommand = conn.CreateCommand())
  {
      sqlCommand.CommandText = "SELECT * FROM tblClassTeacher";
      using (MySqlDataAdapter sda = new MySqlDataAdapter(sqlCommand))
      {
         DataTable dt = new DataTable();
         sda.Fill(dt);
         lv_ClassTeacher.DataSource = dt;
         lv_ClassTeacher.DataBind();
      }
  }

  protected void cb_SwitchTeacher_SelectedIndexChanged(object sender, EventArgs e)
    {
        string TeacherName= cb_SwitchLabel.Text;
            using (MySqlCommand sqlCommand = conn.CreateCommand())
            {
                sqlCommand.CommandText = "UPDATE tblClassTeacher SET Teacher=" + TeacherName + " WHERE ClassID=" + lv_ClassTeacher.SelectedDataKey.Value.ToString();
                sqlCommand.ExecuteNonQuery();
                //What can I do to update the listview without reloading the whole table?
            }
        }
    }

开启按“cmd_View”,类字段将突出显示。当用户切换到下拉列表中的另一个教师时,我将更新数据库。

但我想更新listview,而无需重新加载整个表。 我能这样做吗?谢谢。

0 个答案:

没有答案