快速业务通道

深入ASP.NET数据绑定(下)——多样的绑定方式

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20
bool flag = false;
103:         int length = expr.IndexOfAny(indexExprStartChars);
104:         int num2 = expr.IndexOfAny(indexExprEndChars, length + 1);
105:         if (((length < 0) || (num2 < 0)) || (num2 == (length + 1)))
106:         {
107:              throw new ArgumentException(SR.GetString("DataBinder_Invalid_Indexed_Expr", new object[] { expr }));
108:         }
109:         string propName = null;
110:         object obj3 = null;
111:         string s = expr.Substring(length + 1, (num2 - length) - 1).Trim();
112:         if (length != 0)
113:         {
114:             propName = expr.Substring(0, length);
115:         }
116:         if (s.Length != 0)
117:          {
118:             if (((s[0] == ''"'') && (s[s.Length - 1] == ''"'')) || ((s [0] == ''\'''') && (s[s.Length - 1] == ''\'''')))
119:             {
120:                 obj3 = s.Substring(1, s.Length - 2);
121:             }
122:             else if (char.IsDigit(s[0]))
123:             {
124:                  int num3;
125:                 flag = int.TryParse(s, NumberStyles.Integer, CultureInfo.InvariantCulture, out num3);
126:                  if (flag)
127:                 {
128:                      obj3 = num3;
129:                 }
130:                  else
131:                 {
132:                      obj3 = s;
133:                 }
134:              }
135:             else
136:             {
137:                 obj3 = s;
138:             }
139:         }
140:         if (obj3 == null)
141:         {
142:             throw new ArgumentException(SR.GetString ("DataBinder_Invalid_Indexed_Expr", new object[] { expr }));
143:         }
144:         object propertyValue = null;
145:         if ((propName != null) && (propName.Length != 0))
146:         {
147:              propertyValue = GetPropertyValue(container, propName);
148:         }
149:         else
150:         {
151:             propertyValue = container;
152:         }
153:         if (propertyValue == null)
154:         {
155:             return obj2;
156:         }
157:         Array array = propertyValue as Array;
158:         if ((array != null) && flag)
159:         {
160:             return array.GetValue((int) obj3);
161:         }
162:         if ((propertyValue is IList) && flag

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号