【问题标题】:StartIndex cannot be less than zero. Parameter name: startIndex Using HijriDatePicker?StartIndex 不能小于零。参数名称:startIndex 使用 HijriDatePicker?
【发布时间】:2019-03-25 03:12:04
【问题描述】:

我正在使用带有 gridview 控件的 Hijri Gerogian Datapicker 的多个实例,当我从 gridview 中删除时,我收到以下错误:

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:\Users\Mawni\Desktop\Hijri_Greg_DatePicker_Sample\HijriGregDatePicker.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

有什么帮助吗?

【问题讨论】:

    标签: c# jquery asp.net postback


    【解决方案1】:

    看看这段代码:

    strPostBackControlName.LastIndexOf("$")
    

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

    public string Substring (int startIndex);
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-22
      • 2014-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多