页面批量赋值

在ASP.net中,遇到数据库字段较多,给前端赋值的情况好麻烦的说

 1 //通过Id获取前端控件,必须是ruanatServer的控件
 2     public Control GetControl(string name)
 3     {
 4         object obj;
 5         try
 6         {
 7             var a = this.GetType();
 8             obj = this.GetType().GetField(name, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).GetValue(this);
 9         }
10         catch
11         {
12             return null;
13         }
14
15         return ((Control)obj);
16     }
17
18     //遍历Model给前端赋值
19     public void SetControlsValue<T>(T obj) where T:new()
20     {
21         Type t = obj.GetType();
22
23         foreach (var item in t.GetProperties())
24         {
25             Control ctrl = GetControl(item.Name);
26             if (ctrl != null)
27             {
28                 if (ctrl.GetType().Name == "TextBox")
29                 {
30                     TextBox a = (TextBox)ctrl;
31                     if (a != null)
32                     {
33                         try
34                         {
35                             a.Text = item.GetValue(obj, null).ToString();
36                         }
37                         catch
38                         {
39                             a.Text = "";
40                         }
41                     }
42                 }
43                 if (ctrl.GetType().Name == "DropDownList")
44                 {
45                     DropDownList a = (DropDownList)ctrl;
46                     if (a != null)
47                     {
48                         try
49                         {
50                             a.SelectedValue = item.GetValue(obj, null).ToString();
51                         }
52                         catch
53                         {
54                             a.SelectedValue = "请选择";
55                         }
56                     }
57                 }
58
59                 if (ctrl.GetType().Name == "Label")
60                 {
61                     Label a = (Label)ctrl;
62                     if (a != null)
63                     {
64                         try
65                         {
66                             a.Text = item.GetValue(obj, null).ToString();
67                         }
68                         catch
69                         {
70                             a.Text = "";
71                         }
72                     }
73                 }
74             }
75         }
76     }

只是有一个要求,前端的Id必须与后台类的属性一致

时间: 2024-11-12 23:09:48

页面批量赋值的相关文章

用AddRange()方法为List批量赋值

List<int> list = new List<int>();list.AddRange(new int[] { 1, 5, 10, 20 ,33 }); //也可直接赋值 List<int> list2 = new List<int> { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; //对复杂成员的批量赋值 // 如果容器存放的是非简单对象            List<Point> pointList = new L

如何将Excel表批量赋值到ArcGIS属性表

情景再现 现需要将Excel表信息批量赋值(不是挂接)到Shp文件的属性表,两张表的字段.记录数一模一样,至于为什么会出现这样的问题,咱也不敢问,只有想个法子把它搞定! 原始的Excel信息表共57列,总共3万多条记录,包含了正确的记录数据,如下: 目标的ArcGIS属性表也是57列(不是Table表,是要素类的属性表),记录中的信息不正确,如下: 好在它们的FID字段可以一一对应,现在需要根据Excel属性表把ArcGIS属性表填充正确. 常规思路 最容易想到的方法是,用属性表连接Excel表

# memset批量赋值

memset数组初始化 首先memset是对字节操作的,一个字节有8位二进制,这是常识,相信大家都知道. 比如: memset(dp,0,sizeof(dp)) int类型的变量一般占用4个字节,对每一个字节赋值0的话就变成了"00000000 00000000 000000000 00000000" (即10进制数中的0) 赋值为-1的话,放的是 "11111111 11111111 11111111 11111111 "( 11111111为十进制的-1) 赋值

KendoUI关于Grid页面刷新赋值(不修改数据库)

1.Grid页面某个字段修改赋值(不用刷新) var row = GG.data("kendoGrid").select(); var data = GG.data("kendoGrid").dataItem(row); data.set("IP", "1212"); 2.Grid刷新 var grid = $("#SearchGrid").data("kendoGrid"); grid

c# WinForm中使用DevExpress.XtraSpreadsheet.SpreadsheetControl时,给sheet批量赋值

即使看了Demo,我也是很久才搞清除的,可能是我太笨了 首先在form上添加一个spreadsheetcontrol控件,添加各种引用: 然后添加引用: using DevExpress.XtraEditors; using DevExpress.Spreadsheet; // 使用sheet.Import();函数 进行赋值: // 给Spreadsheetcontrol批量复制 Worksheet worksheet = this.spreadsheetControl1.ActiveWork

C++类数组批量赋值

类和结构体不同,结构体在初始化时可以使用{...}的方法全部赋值,但是结构体怎么办呢?一种是把数据数组写到一个相同的结构体内,然后for循环使用一个非构造函数写入到类数组中.另一种方法是直接写入到对应数组,例如有如下一个类: class A{ char* pname; int property[5]; public: void ipt(char* t,int pt[]){pname=t; for(int i=0;i<5;i++) property[i]=pt[i]; } } 使用第一种方法如下:

layer 弹出子页面然后给父页面赋值

//----赋值 并关闭当前页面 开始---- FunctionActionDeleteXZ = function (CompanyId, RelCompanyName) { parent.$("#RelCompanyName").val(RelCompanyName); //--关闭 当前页面 开始-- var index = parent.layer.getFrameIndex(window.name); parent.layer.close(index); //--关闭 当前页面

asp.net页面间传值的几种方法

表单提交 传送页面代码 <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>表单提交</title> <script type="text/javascript" language="javascript"> function post() { forPost.action

php 练习题-session与 cookie的 取值赋值

SESSION 的取值赋值时注意无论取值赋值页面中php代码的第一行必须要写session_start(); 赋值页面: <body> <?php session_start();//一定记住用session时 每个页面都要加无论取值还是赋值页面在开头都要加上 :session_start(); //会话控制 //HTTP协议 在tcp协议基础上 //HTTP 协议称无状态协议 //SESSION的特点:1存储在服务器:2每个使用者都会生成一个session:3有默认的过期时间大概是15