2
Reply

Problem in SelectedIndexChanged of gridview

Ajay Gautam

Ajay Gautam

Sep 7 2010 1:45 PM
4.2k

Hi,

My requirement is, if i click on Manage button of gridview then it should show all the data in the textbox from database.

I have problem, It is working fine If contactusID visible="true" and when it is false then if i select row on gridview first time,its fine and if i select any row second time, i am getting error. There is no row at position 4 and my counter starts with 0, and i have 4 rows in my grid.

Code:-

protected void gvAppContactUs_SelectedIndexChanged(object sender, EventArgs e)
        {
            
            mvDefault.SetActiveView(vModifyApp);
            VModifyContactUsInView();
            hfIsNewContact.Value = false.ToString();
            NewContact(false);
            StyleUtility.EnableButton(btnDelete);
        }

protected void VModifyContactUsInView()
        {
            lblApplicationName.Text = hfSysName.Value;
            tcContactUs.ActiveTabIndex = 0;
            LinkApplicationSearch.Visible = true;
            LtrManageApplicationContactUs.Visible = false;
            LtrManageApplicationRoles.Visible = false;
            LtrRoleDetails.Visible = false;
            LtrSeparator0.Visible = false;
            LtrSeparator1.Visible = true;
            LtrSeparator2.Visible = true;
            LinkManageApplicationContactUs.Visible = true;
                        
            LinkManageApplicationContactUs.Text = gvApplications.SelectedDataKey["DisplayName"].ToString();
            LtrContactUsDetails.Visible = true;
            LtrContactUsDetails.Text = lblApplicationName.Text;
            ltrContactUsDetailsContactUsName.Visible = true;
            ltrContactUsDetailsContactUsName.Text = lblApplicationName.Text;
            btnContactUsDelete.Enabled = false;
            
            mvDefault.SetActiveView(vModifyContactUs);

            ApplicationContactUsDal dalContact = new ApplicationContactUsDal();
            DataTable dtContact = dalContact.GetAllContactUsInfo(hfSysName.Value);
                      
            String selectedContactUsID = gvAppContactUs.SelectedRow.Cells[0].Text;
            
            int selectedRowId;
            for (selectedRowId = 0; selectedRowId <dtContact.Rows.Count; selectedRowId++)
            {
                if ((dtContact.Rows[selectedRowId]["ContactUsID"].ToString()).Equals(selectedContactUsID))
                {
                    Session["contactUsID"] = selectedContactUsID;
                    break;
                }
            }
            hfContactUsID.Value = selectedContactUsID;

            hfApplicationName.Value = dtContact.Rows[selectedRowId]["ApplicationName"].ToString();
            txtOpenDaysOfWeek.Text = dtContact.Rows[selectedRowId]["OpenDaysOfWeek"].ToString();
            txtTimings.Text = dtContact.Rows[selectedRowId]["Timings"].ToString();
            txtTimeZone.Text = dtContact.Rows[selectedRowId]["TimeZone"].ToString();
            txtPhoneNumber.Text = dtContact.Rows[selectedRowId]["PhoneNumber"].ToString();
            txtPhoneNumber2.Text = dtContact.Rows[selectedRowId]["PhoneNumber2"].ToString();
            txtPhoneExtension.Text = dtContact.Rows[selectedRowId]["PhoneExtension"].ToString();
            txtEmailAddress.Text = dtContact.Rows[selectedRowId]["EmailAddress"].ToString();
            LinkManageApplicationContactUs.Text = gvAppContactUs.SelectedDataKey["ApplicationName"].ToString();
            tcPanelContactUsDetails.Visible = true;
            
           
            btnContactUsDelete.Enabled = false;
            gvAppContactUs.SelectedIndex = -1;
            
            lblApplicationName.Visible = true;
            
            BindAppContactUsGV();
            BindRoleWorkflow();
            SetBreadCrumbs();
         }


protected void BindAppContactUsGV()
        {

            // Get a list of Application ContactUs information
            List<ContactUs> appContactUsInfo = new List<ContactUs>(ContactUs.FindAllContactUsInfo(hfSysName.Value));

            // Sort Selected Roles
            switch (this.gvAppContactUs_sortOrder)
            {
                case "ContactUsID":
                    appContactUsInfo = appContactUsInfo.OrderBy(item => item.ContactUsID).ToList();
                    break;

                case "ApplicationName":
                    appContactUsInfo = appContactUsInfo.OrderBy(item => item.ApplicationName).ToList();
                    break;
                case "OpenDaysOfWeek":
                    appContactUsInfo = appContactUsInfo.OrderBy(item => item.OpenDaysOfWeek).ToList();
                    break;
                case "Timings":
                    appContactUsInfo = appContactUsInfo.OrderBy(item => item.Timings).ToList();
                    break;
                case "TimeZone":
                    appContactUsInfo = appContactUsInfo.OrderBy(item => item.TimeZone).ToList();
                    break;
                case "PhoneNumber2":
                    appContactUsInfo = appContactUsInfo.OrderBy(item => item.PhoneNumber2).ToList();
                    break;
                case "PhoneNumber":
                    appContactUsInfo = appContactUsInfo.OrderBy(item => item.PhoneNumber).ToList();
                    break;
                case "PhoneExtension":
                    appContactUsInfo = appContactUsInfo.OrderBy(item => item.PhoneExtension).ToList();
                    break;
                case "EmailAddress":
                    appContactUsInfo = appContactUsInfo.OrderBy(item => item.EmailAddress).ToList();
                    break;
            }

            if (this.gvAppContactUs_sortReverse)
            {
                appContactUsInfo.Reverse();
            }
            
            gvAppContactUs.DataSource = appContactUsInfo.ToArray();
            gvAppContactUs.DataBind();

           // String selectedContactUsID = gvAppContactUs.SelectedRow.Cells[0].Text;

            gvAppContactUs.Columns[0].Visible = false;  
            //tpAppContactUsInfo.TabIndex = 7;
            //Tabs.ActiveTab = vModifyApp.Controls[7];
            //Tabs.ActiveTabIndex = 7;
            //FreezeForContactUs(true);
      
        }

aspx code: -

<ajaxToolkit:TabPanel ID="tpAppContactUsInfo" runat="server" HeaderText="Application Contact Information" TabIndex="7">
                <ContentTemplate>
                   <div>
                        <asp:Panel ID="pnlAppContactGV" runat="server" Font-Names="Arial" Font-Size="10pt" GroupingText="Application Contacts">
                           <div id="SearchAppContactUsResultsData" runat="server" style="text-align: right; font-size: small;
                             background-color: #F0F0F0; border-top: solid 1px #C0C0C0; padding-right: 2px">
                             <asp:Label ID="AppContactUsResultDetails" runat="server" />
                             
                             <asp:GridView ID="gvAppContactUs" runat="server" AllowPaging="true"
                                AllowSorting="true" AutoGenerateColumns="False" BorderStyle="None"
                                CellPadding="4" CssClass="gridView" DataKeyNames="ApplicationName"
                                EmptyDataText="There are no Contact information to display." ForeColor="#333333"
                                GridLines="None" OnPageIndexChanging="gvAppContactUs_PageIndexChanging"
                                OnSelectedIndexChanged="gvAppContactUs_SelectedIndexChanged"
                                OnSorting="gvAppContactUs_Sorting" PageSize="15" Width="100%">
                                
                                <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                
                                <Columns >
                                     <asp:BoundField DataField="ContactUsID" HeaderStyle-HorizontalAlign="Left"  ItemStyle-HorizontalAlign="Left"
                                       HeaderText="ContactUSID" SortExpression="ContactUsID"  Visible="true"/>
                                                
                                     <asp:BoundField DataField="ApplicationName" HeaderStyle-HorizontalAlign="Left"  ItemStyle-HorizontalAlign="Left"
                                       HeaderText="Application Name" SortExpression="ApplicationName" />
                                                
                                     <asp:BoundField DataField="OpenDaysOfWeek" HeaderStyle-HorizontalAlign="Left"
                                         HeaderText="Support Days" SortExpression="OpenDaysOfWeek" />
                                      
                                     <asp:BoundField DataField="Timings" HeaderStyle-HorizontalAlign="Left"
                                                HeaderText="Support Time" SortExpression="Timings" />
                                     <asp:BoundField DataField="TimeZone" HeaderStyle-HorizontalAlign="Left"
                                                HeaderText="TimeZone" SortExpression="TimeZone" />
                                     
                                     <asp:BoundField DataField="PhoneNumber" HeaderStyle-HorizontalAlign="Left"
                                                HeaderText="PhoneNo" SortExpression="PhoneNumber" />
                                     
                                     <asp:BoundField DataField="PhoneNumber2" HeaderStyle-HorizontalAlign="Left"
                                                HeaderText="PhoneNo2" SortExpression="PhoneNumber2" />
                                     
                                     <asp:BoundField DataField="PhoneExtension" HeaderStyle-HorizontalAlign="Left"
                                                HeaderText="PhoneExt" SortExpression="PhoneExtension" />
                                      
                                     <asp:BoundField DataField="EmailAddress" HeaderStyle-HorizontalAlign="Left"
                                                HeaderText="EmailAddress" SortExpression="EmailAddress" />
                                     <asp:CommandField ButtonType="Button" ControlStyle-CssClass="btn"
                                                ItemStyle-HorizontalAlign="Right" SelectText="Manage" ShowSelectButton="True" />
                              </Columns>
                              <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                              <EditRowStyle BackColor="#999999" />
                              <SelectedRowStyle BackColor="Gold" Font-Bold="True" ForeColor="Black" />
                              <PagerStyle BackColor="#414E6E" BorderStyle="None" BorderWidth="0px" Font-Names="Arial" ForeColor="White" HorizontalAlign="Center" />
                              <HeaderStyle CssClass="gridViewHeader" Font-Bold="True" Font-Names="Arial" ForeColor="Black" />
                              <AlternatingRowStyle BackColor="#EEEEFF" ForeColor="Black" />
                           </asp:GridView>
                          </div><br />
                          <asp:Button ID="btnNewContactUs" runat="server" CssClass="btn"
                                            OnClick="btnNewContactUs_Click" Text="New ContactUs" UseSubmitBehavior="false"
                                            Width="100px" />
                                            
                    </asp:Panel>
                  </div>
             </ContentTemplate>
          </ajaxToolkit:TabPanel>



Answers (2)