Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net FormView未使用控件事件更新_Asp.net - Fatal编程技术网

Asp.net FormView未使用控件事件更新

Asp.net FormView未使用控件事件更新,asp.net,Asp.net,是时候回答我的每日ASP.NET问题了 我的一个页面显示了客户表中的所有客户信息。我希望用户选择是查看所有客户记录,还是从列表中选择特定记录。因此,我的网页有两个单选按钮(显示所有客户、显示特定客户)、一个列表框(充满客户名称)和一个formview控件。我遇到的问题是,当我通过单选按钮或列表框选择更改模式时,要更新formview(请参见下面的代码) 有谁能给我一些关于如何做我想做的事情的建议吗 protected void Page_Load(object sender, EventArgs

是时候回答我的每日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();
}

您的页面必须在客户端更新,才能显示新数据。您需要使用Javascript或AJAX,并使用一些变量来跟踪刷新页面的需要,这样您就可以在Formview需要更新时向服务器发送更新页面的请求。

首先,您只需要连接SelectedIndexChanged事件。。。在这种情况下,当您更改下拉框时,首先触发Page_Load(),调用UpdatePage()。然后,事件激发,再次调用UpdatePage()。第二次可能不会达到你的预期

修复方法是仅在第一次加载页面时从Page_Load()调用UpdatePage(),而不是从回发调用:

protected void Page_Load(object sender, EventArgs e)
{
    if (!this.IsPostBack)
        UpdatePage();
}