起始索引不能小于零.参数名称:使用回历日期选取器启动索引?



我正在使用许多带有网格视图控制的Hijri Gerogian数据选择器实例,当我从网格视图中删除时,我收到以下错误:

StartIndex cannot be less than zero.
Parameter name: startIndex
Line 173:                    //to manage multiple instances of user control postback, incase the postback happend due to culture changeed in current control,
Line 174:                    //the other user contrls culture drop down list to be changed accordingly. Also year and month dropdown lists according to culture 
Line 175:                    if (strPostBackControlName != "" && strPostBackControlName.Substring(strPostBackControlName.LastIndexOf("$")) == "$ddlLocaleChoice")
Line 176:                    {
Line 177:                        if (ddlLocaleChoice.SelectedValue == arabicCulture.Name)

[ArgumentOutOfRangeException: StartIndex cannot be less than zero.
Parameter name: startIndex]
System.String.Substring(Int32 startIndex, Int32 length) +13011515
System.String.Substring(Int32 startIndex) +15
Hijri_Greg_DatePicker_Sample.HijriGregDatePicker.Page_Load(Object sender, EventArgs e) in C:UsersMawniDesktopHijri_Greg_DatePicker_SampleHijriGregDatePicker.ascx.cs:175
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51
System.Web.UI.Control.OnLoad(EventArgs e) +95
System.Web.UI.Control.LoadRecursive() +59
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +678

有什么帮助吗?

看看这段代码:

strPostBackControlName.LastIndexOf("$")

它将返回字符串中$的最后一个索引,但当找不到$时,它将返回-1结果。稍后您将尝试使用此结果调用strPostBackControlName.Substring,但Substring具有以下原型:

public string Substring (int startIndex);

当然,你不能用小于 0 的起始索引来调用它(因为字符串中的索引从0开始(。添加检查LastIndexOf("$")是否未-1,或确保strPostBackControlName始终包含$

最新更新