我日常ASP.NET问题的时间。
我的一个页面显示了客户表中的所有客户信息。我希望用户选择是否查看所有客户记录,或从列表中选择特定记录。因此,我的网页有两个单选按钮(显示所有客户,显示特定客户),一个列表框(完整的客户名称)和一个formview控件。我遇到的问题是当我通过单选按钮或列表框选择更改模式时,可以更新formview(参见下面的代码)。
任何人都可以向我提供一些关于如何做我想做的事情的指示吗?
protected void Page_Load(object sender, EventArgs e)
{
UpdatePage ();
}
protected void RadioButtonShowAll_CheckedChanged(object sender, EventArgs e)
{
}
protected void RadioButtonShowSelected_CheckedChanged(object sender, EventArgs e)
{
}
protected void DropDownListCustomers_SelectedIndexChanged(object sender, EventArgs e)
{
RadioButtonShowSelected.Checked = true;
UpdatePage ();
}
protected void UpdatePage ()
{
if (RadioButtonShowAll.Checked)
SqlDataSource1.SelectCommand = "SELECT * FROM [Customer] ORDER BY [Company]";
else
SqlDataSource1.SelectCommand = "SELECT * FROM [Customer] WHERE ([CustomerID] = @CustomerID) ORDER BY [Company]";
FormView1.DataBind();
}
答案 0 :(得分:0)
您的页面必须在客户端更新,才能显示新数据。您需要使用Javascript或AJAX并使用一些变量来跟踪刷新页面的需要,这样您就可以在Formview需要更新时发送更新页面到服务器的请求。
答案 1 :(得分:0)
首先,你只连接了SelectedIndexChanged事件...在这种情况下,更改下拉框时会发生什么,首先是Page_Load()触发 - 调用UpdatePage()。然后,事件触发,再次调用UpdatePage()。第二次可能没有达到预期的效果。
修复是仅在第一次加载页面时从Page_Load()调用UpdatePage(),而不是从回发中调用:
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
UpdatePage();
}