用户输入和服务器/用户控制

时间:2012-06-12 22:43:56

标签: asp.net sharepoint user-controls web-parts servercontrols

在创建应用程序页面或Web部件时,我偶尔会发现我的页面周围的多个位置都有相同的下拉列表和标签。

Application Page
 _____________________
| lbl ddl    lbl dll  |
| lbl ddl    lbl ddl  |
|                     |
| lbl ddl    lbl dll  |
| lbl ddl    lbl ddl  |
-----------------------

最初,我会采用这些说法的一个实例,2个标签和2个下拉控件,我会在ascx文件中将其模拟出来,称之为用户控件(后面有代码完成),然后将其粘贴到我的主要应用程序页面位于多个位置。

Application Page
 _____________________
| user        user    |         User Control
| control    control  |          ___________
|                     |          | lbl ddl |
| user        user    |          | lbl ddl |
| control    control  |          -----------
-----------------------

问题最近,我被告知如果每个用户控件中显示的下拉列表或标签等的数量是动态的,那么我应该使用而不是用户控件服务器控件。

但我似乎无法做到这一点!在服务器控件中,似乎没有html模型,因此您只需要使用代码。我无法弄清楚如何存储用户输入,或者将用户输入从生成的代码移到后面的代码中。

那么这是否意味着服务器控件只用于创建单独的控件,比如MySpecialTextBox?或者我是否完全错了?(有没有人能看到一个好的,复杂的示例项目?)

1 个答案:

答案 0 :(得分:0)

  

我无法弄清楚如何存储用户输入,或将用户输入移动到   生成的代码背后的代码。

此下拉控件的用户输入始终是回发后的。始终有通过Request.Form获取它们的简单方法,因此您可以使用以下方式获取用户输入:

Request.Form[Control.UniqueID]

因此,您只需要在控件上添加唯一名称,并在回发后记住/知道/重新创建这些名称以获取回发后的值。