我有一个listview和一些代码隐藏,“OnItemCommand”命令在我的web应用程序上执行某些操作。我想通过单击ListView中的图标将ListView中的条目添加到MySql数据库。
Listview不是那么小,有时您需要向下滚动才能找到正确的条目。如果我单击其中一个按钮,页面会重新加载滚动到页面顶部。但我希望页面保持在这个位置。我不想在每次点击后向下滚动以查找我之前的位置。
有人想过如何做到这一点?
这是ListView_OnItemCommand的代码隐藏:
protected void addTextModuleList_OnItemCommand(object sender, ListViewCommandEventArgs e)
{
// read the ticket ID from e
ListViewDataItem dataItem = (ListViewDataItem)e.Item;
if (String.Equals(e.CommandName, "insertTextModule"))
{
//connect to database
MySqlConnection con = new MySqlConnection();
con.ConnectionString = Helper.CONNECTION_STRING;
MySqlCommand cmd = null;
// insert new entrys for customer
cmd = new MySqlCommand();
con.Open();
cmd.Parameters.AddWithValue("@customer", Session["currentCustomerId"]);
int id = Convert.ToInt16(addTextModuleList.DataKeys[dataItem.DisplayIndex].Value.ToString());
cmd.Parameters.AddWithValue("@textModule", id);
cmd.Parameters.AddWithValue("@confirmationId", Session["currentConfirmationId"].ToString());
cmd.CommandText = "INSERT INTO linktextmodule (customer, textModule, confirmationID) " + "VALUES(@customer, @textModule, @confirmationId)";
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
//change the cssClass of the linkButton
LinkButton addTextModuleButton = e.Item.FindControl("addTextModuleButton") as LinkButton;
addTextModuleButton.CssClass = "insertTextModuleButton";
}
}
答案 0 :(得分:1)
您可以使用这两种方法来维护回发时的页面位置
在页面声明中
<%@ Page MaintainScrollPositionOnPostback="true" %>
或 web.config 文件中。
<pages maintainScrollPositionOnPostBack="true" />
答案 1 :(得分:0)
使用ajax工具包的更新面板控件
答案 2 :(得分:-1)
使用Page.SmartNavigation属性为true。有关更多信息,请参阅以下链接
http://msdn.microsoft.com/en-us/library/system.web.ui.page.smartnavigation(v=vs.90).aspx