深入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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于深入ASP.NET数据绑定(下)——多样的绑定方式的所有评论