1

在创建应用程序页面或 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?还是我完全错了? (有没有人可以查看一个好的、复杂的示例项目?)

4

1 回答 1

0

我不知道如何存储用户输入,或将用户输入从生成的代码移到后面的代码中。

此下拉控件的用户输入总是在回发时出现。总有一种简单的方法可以通过 获取它们Request.Form,因此您可以使用以下命令获取用户输入:

Request.Form[Control.UniqueID]

因此,您只需在控件上添加唯一名称,并在回发时记住/知道/重新创建该名称以获得回发值。

于 2012-06-12T23:58:14.787 回答