asp:textbox和asp:dropdownlist,autopastback属性必须为true
解决方案 »
- asp.net 选择文件夹,上传文件夹下面的所有图片
- MVC常见问题,不知道MVC里怎么实现 在线等...立刻结贴
- asp.net treenode 的问题
- 很强的一个问题,搞了我一周,关于application error的问题。
- ASP.NET中,页面级别的全局变量如何声明??
- 创建线程再执行完方法之后会自动关闭吗
- session的一个简单问题
- Asp.net c#水晶报表 ,马上给分、
- 各位高手,怎样用数据库的值动态控制RadioButtonList中的ListItem选中
- 从数据库中读数据是,空值的判断?
- 急需物资管理方面需求分析,设计文档,简单一点,10来页就行!
- 急!!!在线等待!
具体情况是这样的:
1.用户选择起始时间(asp:dropdownlist id="StartYear")、终止时间(asp:dropdownlist ID="EndYear")和输入地点(asp:textbox ID="txtAddress")
2.用datagrid分页显示记录
3.如果已查到46条条记录,分5页显示,现在我查看第3页的记录,符合条件,然后再次选择
起始时间、终止时间和输入地点,然后再次选择datagrid中的第4页(此时datagrid不会消失),此时程序当然出错,解决方法是在起始时间等的OnSelectedChange的事件中使datagrid变为visible=false,单击查询按钮时datagrid的visible为true,但起始时间等autopastback=true此时间才有效。
void searchCar_Click(...)
{
...
}
void SelectCodeChange(object sender,EventArgs e)//起始时间
{
MyDataGrid.Visible=false;
MyDataGrid.CurrentPageIndex=0;
}
void GridPageChange(object source,DataGridPageChangedEventArgs e)
{
MyDataGrid.CurrentPageIndex=e.NewPageIndex;
}
//起始时间、终止时间、地点
<td>起始时间
<asp:dropdownlist ID="StartYear" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ChangeStartYear">
<asp:listitem>00</asp:listitem>
</asp:dropdownlist></td>
<td>终止时间
<asp:dropdownlist ID="EndYear" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ChangeStartYear">
<asp:listitem>00</asp:listitem>
</asp:dropdownlist></td>
<td><asp:textbox ID="txtAddress" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ChangeAddress"/></td>
<asp:button ID="search" value="查 询" OnClick="searchCar_Click" runat="server" text="查询"/>
建议在分页事件中重新绑定DataGrid。
void searchCar_Click(object sender,ImageClickEventArgs e)
{
string strStartYear = StartYear.SelectedItem.Text;//起始时间
string strEndYear =EndYear.Text.ToString();//终止时间
string strAddress = ddlAddress.SelectedItem.Text.ToString();//地点
//取得DATAGRID的索引值
MyDataGrid.CurrentPageIndex=0;
MyDataGrid.Visible=true;//再次点击按钮前应藏
//连接数据库
...
} //DATAGRID控件绑定代码如下
void GridPageChange(object source,DataGridPageChangedEventArgs e)
{
MyDataGrid.CurrentPageIndex=e.NewPageIndex;
string strStartYear = StartYear.SelectedItem.Text;//起始时间
string strEndYear =EndYear.Text.ToString();//终止时间
string strAddress = ddlAddress.SelectedItem.Text.ToString();//地点
//连接数据库
string MyConnString = ConfigurationSettings.AppSettings["MYDATASOURCE"];
OleDbConnection MyConnection = new OleDbConnection(MyConnString);
if(MyConnection.State!=ConnectionState.Open)
{
MyConnection.Open();
}
//按条件显示所输入的信息
string searchSQL = "SELECT * FROM MYTABLE WHERE ...."
DataSet MyDataSet = new DataSet();
//打开 DataAdpater
OleDbDataAdapter MyAdapter = new OleDbDataAdapter(searchSQL,MyConnection);
//数据库填入DataSet
MyAdapter.Fill(MyDataSet,"MYTABLE");
//数据绑定到MyDataGrid控件并显示
MyDataGrid.DataSource = MyDataSet.Tables["MYTABLE"].DefaultView;;
MyDataGrid.DataBind();
MyConnection.Close();
}