2014年7月13日 星期日

[RESOLVED] Index Out of Range Error on DetailsView


Hi I have a DetailsView where I am trying to set some rows visible property to false.  I am getting the following error when I try to do that in the code behind:


Index was out of range. Must be non-negative and less than the size of the collection.

Parameter name: index


Here is my code.


                            BackColor="White" OnPreRender="dvMemberMeetingDetail_OnPreRender" OnItemUpdating="dvMemberMeetingDetail_ItemUpdating"
style="text-align: justify">















ConnectionString ProviderName="System.Data.SqlClient"
SelectCommand="SELECT [vcharMeetingName], [intMeetingID] FROM [tbl_Meetings]">







ID="btnSave" runat="server" Text="Save" onclick="btnSave_Click" />
Close


ConnectionString="<%$ ConnectionStrings:DoseRec_ABTConnectionString %>"
ProviderName="System.Data.SqlClient"
SelectCommand="SELECT tbl_Members.vcharFirstName, tbl_Members.vcharLastName, tbl_Meetings.vcharMeetingName, tbl_MeetingMembers.intMeetingMembersID, tbl_Meetings.intMeetingID FROM tbl_MeetingMembers INNER JOIN tbl_Meetings ON tbl_MeetingMembers.intMeetingID = tbl_Meetings.intMeetingID INNER JOIN tbl_Members ON tbl_MeetingMembers.intMemberID = tbl_Members.intMemberID WHERE (tbl_MeetingMembers.intMeetingMembersID = @intMeetingMembersID)">




This is the code that binds the data to the detailsview when an edit button is clicked in a gridview.


  protected void BtnViewDetails_Click(object sender, EventArgs e)
{
try
{
LinkButton btnDetails = sender as LinkButton;
GridViewRow row = (GridViewRow)btnDetails.NamingContainer;
this.sdsMeetingMemberDetail.SelectParameters.Clear();
this.sdsMeetingMemberDetail.SelectParameters.Add("intMeetingMembersID", Convert.ToString(this.gvMeetingMembers.DataKeys[row.RowIndex].Value));
this.dvMemberMeetingDetail.DataSource = sdsMeetingMemberDetail;
this.dvMemberMeetingDetail.DataBind();
this.updPnlCustomerDetail.Update();
this.mdlPopup.Show();

}

catch (Exception ex)
{
lblMessage.Text = "An error occured.";
Common.EventLogging.LogEvent(EventLogging.EventSeverityLevel.ErrorHighImpact, "An error occured.");
//lblMessage.Text = ex.ToString();
lblMessage.CssClass = "error";
Common.EventLogging.LogEvent(ex);
return;

}

}

This is where I try to set the visible property to false on some of the detailsview's rows.


protected void dvMemberMeetingDetail_OnPreRender(object sender, EventArgs e)
{
dvMemberMeetingDetail.Rows[0].Visible = false;
dvMemberMeetingDetail.Rows[1].Visible = false;

}

Can anyone tell me what I'm doing wrong?  Thank you.





Make sure


if(dvMemberMeetingDetail.Rows[0].Count > 1)
{

}









oned_gk


Make sure

dvMemberMeetingDetail.Rows[0]

.Count > 1


How do I do that if I try to do


if


(dvMemberMeetingDetail.Rows[0].Count > 1)


{


}


It gives me an error message operator > cannot be applied to operands of type method group and int.






oned_gk


Make sure

dvMemberMeetingDetail.Rows[0]

.Count > 1


this works


if (dvMemberMeetingDetail.Rows.Count > 1)
{
dvMemberMeetingDetail.Rows[0].Visible = false;
dvMemberMeetingDetail.Rows[1].Visible = false;
}

Thanks for your help!


沒有留言:

張貼留言