首页 新闻 会员 周边 捐助

如何简化一个asp.net页面对一个表中的很多字段进行添加,编辑,查看的操作

0
悬赏园豆:20 [待解决问题]

页面上有很多label, textbox, CheckBoxList ,RadioButtonList 控件

例如:

 1 <table>
 2     <tr>
 3       <td><asp:Label id="lblID" runat="server" Text="ID"></asp:Label></td>
 4       <td><asp:TextBox ID="txtID" runat="server"></asp:TextBox></td>
 5       <td><asp:Label id="lblName" runat="server" Text="Name"></asp:Label></td>
 6       <td><asp:TextBox ID="txtName" runat="server"></asp:TextBox></td>
 7     </tr>
 8     <tr>
 9       <td><asp:Label id="lblCiyies" runat="server" Text="城市"></asp:Label></td>
10       <td><asp:CheckBoxList ID="chklCities" runat="server"><asp:ListItem Text="上海" Value="1"></asp:ListItem><asp:ListItem Text="北京" Value="2"></asp:ListItem><asp:ListItem Text="广州" Value="3"></asp:ListItem></asp:CheckBoxList></td>
11       <td><asp:Label id="lblJob" runat="server" Text="职业"></asp:Label></td>
12       <td><asp:RadioButtonList ID="radlJob" runat="server"><asp:ListItem Text="教师" Value="1"></asp:ListItem><asp:ListItem Text="医生" Value="2"></asp:ListItem><asp:ListItem Text="建筑师" Value="3"></asp:ListItem></asp:RadioButtonList></td>
13     </tr>
14 还有很多控件......
15 </table>

在添加,编辑,查看事件代码里,怎么才能减少代码,不一个个文本框,复选框赋值和取值,方便以后维护修改?

最好能直接和数据库字段映射起来操作., 如lblName,txtName映射到数据库的Name字段.

yycc2008的主页 yycc2008 | 初学一级 | 园豆:164
提问于:2012-06-26 19:44
< >
分享
所有回答(5)
0

这个你可以自己建立映射规则(关系),然后从数据库取数据,然后,遍历你这些控件,根据你建立的映射规则,进行赋值。

(确保你的数据的完整性,避免出现不必要的异常)

Angkor--:-- | 园豆:1086 (小虾三级) | 2012-06-26 20:22
0

我记得Artech写过讲这样子的博客,路径:http://www.cnblogs.com/artech/archive/2011/03/23/databinding.html

自己看下吧。

webaspx | 园豆:1973 (小虾三级) | 2012-06-26 20:52
0

用MVC吧

八戒的师傅 | 园豆:1472 (小虾三级) | 2012-06-26 21:14
0

这个映射是不可避免的。所有的方案,包括Artech和MVC,不过是把这些东西自动化了而已。

其实,也可以自己在定义这些TEXTBOX等的时候把名字定义得有规律点,然后来自动化实现。这也就跟Angkor说的方案类似了。或者通过你输出TEXTBOX的顺序(SUBMIT的时候,其实也是这个顺序的,你可以研究下REQUEST.FORM的序号坐标)

无论Artech的博客(对不起,我没看过,也至少现在不会去看)还是用MVC,你也会有一天遇到类似的疑问和烦躁!,关键是心态。

无之无 | 园豆:5095 (大侠五级) | 2012-06-26 21:35
0

其实怎么做都是要赋值的   把通用的封装为一个方法 就可以了  方便通用  便于维护

鸡汤哥 | 园豆:210 (菜鸟二级) | 2012-06-28 14:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册