Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.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
C# 确定在使用多个更新面板时页面加载时需要重新创建哪些控件_C#_Asp.net_Asp.net Ajax - Fatal编程技术网

C# 确定在使用多个更新面板时页面加载时需要重新创建哪些控件

C# 确定在使用多个更新面板时页面加载时需要重新创建哪些控件,c#,asp.net,asp.net-ajax,C#,Asp.net,Asp.net Ajax,我有一个包含多个更新面板的页面,每个面板都包含动态创建的用户控件,其中包含一个按钮控件 单击控件中的按钮时,该控件不再存在于页面加载事件中,因此无法引发控件中按钮的单击事件 为了解决这个问题,我目前正在每个页面加载事件中重新创建页面上的所有控件,但这显然会导致大量不必要的页面更新。在任何给定的部分回发中,唯一需要重新创建的控件是更新面板中包含已单击控件的控件 那么,我如何才能最好地识别在页面加载中单击了哪个控件,然后仅在相关更新面板中重新创建控件,以便能够访问该控件的单击事件 我知道我可以做到以

我有一个包含多个更新面板的页面,每个面板都包含动态创建的用户控件,其中包含一个按钮控件

单击控件中的按钮时,该控件不再存在于页面加载事件中,因此无法引发控件中按钮的单击事件

为了解决这个问题,我目前正在每个页面加载事件中重新创建页面上的所有控件,但这显然会导致大量不必要的页面更新。在任何给定的部分回发中,唯一需要重新创建的控件是更新面板中包含已单击控件的控件

那么,我如何才能最好地识别在页面加载中单击了哪个控件,然后仅在相关更新面板中重新创建控件,以便能够访问该控件的单击事件

我知道我可以做到以下几点

if (ScriptManager1.IsInAsyncPostBack)
{
   string clickedControlId = ScriptManager1.AsyncPostBackSourceElementID
}
但这并不是非常有用,因为知道控件的ID并不一定能帮助我识别它属于哪个更新面板。是否有方法在运行时创建控件时将命令参数添加到控件中,并在部分回发期间在页面加载事件中读取该命令参数

若否,有何其他建议?

非常感谢

Stewart

1)停止使用更新面板它们增加了不必要的复杂性,造成了更多的问题,尤其是当一个页面中有多个问题时

2) 不要将Ajax功能与服务器端逻辑混用。您最终将编写大量代码来补偿其中一个

我的建议是:

不要使用更新面板
保留生成初始页面加载的代码。使用常规按钮并使用onClick=“foobar\u ajax(id,…Update UI)”进行ajax调用以更新服务器上的数据,而不是使用.Net按钮发布到服务器。包括您正在单击的项(控件)的ID。完成ajax调用后,您可能不需要做任何事情,或者可以使用服务器上的一些新数据更新UI(我建议保存后刷新)

读:改为使用jQuery调用page方法。

1)停止使用更新面板它们增加了不必要的复杂性,造成了更多的问题,尤其是当一个页面中有多个问题时

2) 不要将Ajax功能与服务器端逻辑混用。您最终将编写大量代码来补偿其中一个

我的建议是:

不要使用更新面板
保留生成初始页面加载的代码。使用常规按钮并使用onClick=“foobar\u ajax(id,…Update UI)”进行ajax调用以更新服务器上的数据,而不是使用.Net按钮发布到服务器。包括您正在单击的项(控件)的ID。完成ajax调用后,您可能不需要做任何事情,或者可以使用服务器上的一些新数据更新UI(我建议保存后刷新)

读:改为使用jQuery调用page方法。

谢谢。我接受了你的建议,虽然一开始有点令人生畏,但我发现我现在可以更好地控制客户机和服务器之间传递的Qt数据,并且可以更好地控制UI,数据流量比以前少得多。谢谢。我接受了你的建议,虽然一开始有点令人生畏,但我发现我现在可以更好地控制客户机和服务器之间传递的Qt数据,并且可以更好地控制UI,数据流量比以前少得多