页面上有很多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字段.
这个你可以自己建立映射规则(关系),然后从数据库取数据,然后,遍历你这些控件,根据你建立的映射规则,进行赋值。
(确保你的数据的完整性,避免出现不必要的异常)
用MVC吧
这个映射是不可避免的。所有的方案,包括Artech和MVC,不过是把这些东西自动化了而已。
其实,也可以自己在定义这些TEXTBOX等的时候把名字定义得有规律点,然后来自动化实现。这也就跟Angkor说的方案类似了。或者通过你输出TEXTBOX的顺序(SUBMIT的时候,其实也是这个顺序的,你可以研究下REQUEST.FORM的序号坐标)
无论Artech的博客(对不起,我没看过,也至少现在不会去看)还是用MVC,你也会有一天遇到类似的疑问和烦躁!,关键是心态。
其实怎么做都是要赋值的 把通用的封装为一个方法 就可以了 方便通用 便于维护