Halloo....
I need your help badly :(
Please do help me to solve this error...
I got this error after i save the first record and navigate to the next record and then save.
Thanks Thanks....
"Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index"
Code:private int _TaxCodeId;
private TaxCode _TaxCode;
protected void Page_Load(object sender, EventArgs e)
{
_TaxCodeId = AlwaysConvert.ToInt(Request.QueryString["TaxCodeId"]);
_TaxCode = TaxCodeDataSource.Load(_TaxCodeId);
if (_TaxCode == null) Response.Redirect("TaxCodes.aspx");
if (!Page.IsPostBack)
{
Caption.Text = string.Format(Caption.Text, _TaxCode.Name);
}
}
protected bool IsLinked(object dataItem)
{
TaxRule rule = (TaxRule)dataItem;
return (rule.TaxRuleTaxCodes.IndexOf(rule.TaxRuleId, _TaxCodeId) > -1);
}
protected void Linked_CheckChanged(object sender, EventArgs e)
{
CheckBox linked = (CheckBox)sender;
int taxRuleId = AlwaysConvert.ToInt(linked.Text);
TaxRule taxRule = TaxRuleDataSource.Load(taxRuleId);
if (linked.Checked)
{
//ADD IF NOT FOUND
if (taxRule.TaxRuleTaxCodes.IndexOf(taxRuleId, _TaxCodeId) < 0)
{
taxRule.TaxRuleTaxCodes.Add(new TaxRuleTaxCode(taxRuleId, _TaxCodeId));
taxRule.Save();
}
}
else
{
//DELETE IF FOUND
int index = taxRule.TaxRuleTaxCodes.IndexOf(taxRuleId, _TaxCodeId);
if (index > -1)
{
taxRule.TaxRuleTaxCodes.DeleteAt(index);
}
}
TaxRuleGrid.DataBind();
}
protected void SaveButton_Click(object sender, EventArgs e)
{
_TaxCode.TaxRuleTaxCodes.DeleteAll();
foreach (GridViewRow gvr in TaxRuleGrid.Rows)
{
CheckBox Linked = gvr.FindControl("Linked") as CheckBox;
if (Linked.Checked)
{
int taxRuleId = (int)TaxRuleGrid.DataKeys[gvr.DataItemIndex].Value;
_TaxCode.TaxRuleTaxCodes.Add(new TaxRuleTaxCode(taxRuleId, _TaxCodeId));
}
}
_TaxCode.Save();
SavedMessage.Visible = true;
SavedMessage.Text = string.Format(SavedMessage.Text, LocaleHelper.LocalNow);
}
