Gridview/Detailsview/ODS inside Repeater - can update only one detailsview

Last post 06-04-2007 2:28 PM by rpuglia. 0 replies.

Sort Posts:

  • Gridview/Detailsview/ODS inside Repeater - can update only one detailsview

    06-04-2007, 2:28 PM
    • Loading...
    • rpuglia
    • Joined on 05-17-2007, 8:49 AM
    • Posts 1

    I have a repeater with nested gv/ods and dv/ods which displays 6 instances of the gv/ods dv/ods combos (I'm using this to dynamically set a parameter for the ods that fills the gv). The page displays fine and I can update one of the instances (doesn't matter which one - any of the six will update), but if I select a different instance to update after the first successful update, upon clicking the submit button, the detailsview is in readonly mode during the ods updating event and is unable to find some of the controls I'm referencing in code-behind. The detailsview is in readonly mode for the first update, yet finds these controls anyhow. Any ideas?

     <%--
     **************************************************************************************
     *   RP to display GV/DV of summary of open disruptions
     **************************************************************************************
     --%>
     <asp:Repeater runat="server" ID="rpFrameworkAffected" DataSourceID="odsFrameworkAffected" OnItemDataBound="rpFrameworkAffected_ItemDataBound">
      <ItemTemplate>
       <asp:Label runat="server" ID="lblFrameworkAffected" Text='<%# DataBinder.Eval(Container.DataItem, "frameworkAffected") %>' Visible="false" />
      
       <%--
       **************************************************************************************
       *   ODS for gridview
       **************************************************************************************
       --%>
       <asp:ObjectDataSource ID="odsServiceDisruptionsByGeoFW" runat="server" SelectMethod="GetServiceDisruptionsByGeoFW" TypeName="ServiceDisruptionsBLL">
        <SelectParameters>
         <asp:QueryStringParameter Name="geo" QueryStringField="geo" Type="String" />
         <asp:ControlParameter Name="fw" ControlID="lblFrameworkAffected" />
        </SelectParameters>
       </asp:ObjectDataSource>
      
       <%--
       **************************************************************************************
       *   GV to display summary of open disruptions
       **************************************************************************************
       --%>
     <%--<asp:UpdatePanel runat="server" ID="upSDDV" UpdateMode="conditional">
      <ContentTemplate>--%>
       <asp:GridView
            runat="server"
            ID="gvServiceDisruptionsByGeoFW"
            DataSourceID="odsServiceDisruptionsByGeoFW"
            DataKeyNames="sdID"
            AutoGenerateColumns="False"
            OnRowCommand="gvServiceDisruptionsByGeoFW_RowCommand"
            EmptyDataText="No reported issues or disruptions"
            ShowFooter="true"
            CssClass="gvCaption"
            CellPadding="3"
            ForeColor="#333333"
            GridLines="Horizontal"
            Width="90%"
            CaptionAlign="Left"
            HorizontalAlign="Center"
            Font-Names="Tahoma"
            Font-Size="0.8em"
            >
        <Columns>
       
       <asp:TemplateField meta:resourcekey="HeaderShowHideDetailsResource">
        <FooterTemplate>
         <asp:ImageButton runat="server" ImageUrl="~/images/less.gif" ImageAlign="Middle" AlternateText="Hide Details" CommandName="Unselect" meta:resourcekey="ImageButtonHideDetailsResource" />
        </FooterTemplate>
        <ItemTemplate>
         <asp:ImageButton runat="server" ImageUrl="~/images/more.gif" ImageAlign="AbsMiddle" AlternateText="Show Details" CommandName="Select" meta:resourcekey="ImageButtonShowDetailsResource" />
        </ItemTemplate>
       </asp:TemplateField>

         <%--<asp:ButtonField ButtonType="image" ImageUrl="~/images/more.gif" CommandName="Expand" />--%>

         <asp:TemplateField SortExpression="sdID" HeaderText="Disruption<br />ID" meta:resourcekey="HeaderSDIDResource">
          <ItemTemplate>
           <asp:Label ID="sdID" runat="server" Text='<%# Bind("sdID") %>'></asp:Label>
          </ItemTemplate>
          <ControlStyle Width="5%" />
         </asp:TemplateField>
         <asp:TemplateField SortExpression="startDateOfDisruption" HeaderText="Start Date &amp; Time<br /><span class='dateIndicator'>(mm/dd/yyyy)</span>" meta:resourcekey="DateTimeResource">
          <ItemTemplate>
           <asp:Label ID="startDateOfDisruption" runat="server" Text='<%# Bind("startDateOfDisruption", "{0:MM/dd/yyyy}") %>'></asp:Label>
           <asp:Label ID="startTimeOfDisruption" runat="server" Text='<%# Bind("startTimeOfDisruption", "{0:HH:mm}") %>'></asp:Label>
          </ItemTemplate>
          <ControlStyle Width="15%" />
         </asp:TemplateField>
         <asp:BoundField DataField="shortDescription" HeaderText="Short Description" SortExpression="shortDescription" meta:resourcekey="HeaderShortDescriptionResource">
          <ControlStyle Width="40%" />
         </asp:BoundField>
         <asp:BoundField DataField="businessImpact" HeaderText="Business Impact" SortExpression="businessImpact" meta:resourcekey="HeaderBusinessImpactResource">
          <ControlStyle Width="20%" />
         </asp:BoundField>
         <asp:BoundField DataField="expectedDuration" HeaderText="Expected Duration" SortExpression="expectedDuration" meta:resourcekey="HeaderExpectedDurationResource">
          <ControlStyle Width="20%" />
         </asp:BoundField>

         <%--<asp:TemplateField ItemStyle-BorderStyle="None">
          <ItemTemplate>
           <tr runat="Server" id="DetailsRow">
            <td colspan="6">

            </td>
           </tr>
          </ItemTemplate>
         </asp:TemplateField>--%>
        </Columns>
        <FooterStyle BackColor="#11568C" ForeColor="White" Font-Names="Tahoma" Font-Size="1em" />
        <HeaderStyle BackColor="#B1CBE5" ForeColor="Black" />
        <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
        <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
        <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
        <SelectedRowStyle BackColor="#FFFF99" Font-Bold="True" ForeColor="#333333" />
        <EmptyDataRowStyle BackColor="#F7F6F3" ForeColor="#333333" />
       </asp:GridView>
           
             <%--
             **************************************************************************************
             *   DV to display details of selected Applications - Mainframe disruption
             **************************************************************************************
             --%>
             <asp:DetailsView
                  ID="dvServiceDisruptionsByGeoFW"
                  runat="server"
                  DataKeyNames="sdID"
                  DataSourceID="odsFWdv"
                  OnPreRender="dvServiceDisruptionsByGeoFW_PreRender"
                  AutoGenerateRows="False"
                  CellPadding="5"
                  Width="100%"
                  HorizontalAlign="Center"
                  Font-Names="Tahoma"
                  Font-Size="1em"
                  CssClass="sdDetailsView"
                  >
              <Fields>
               <asp:TemplateField HeaderText="Disruption ID" SortExpression="sdID" meta:resourcekey="HeaderSDIDResource">
                <EditItemTemplate>
                 <asp:Label ID="sdID" runat="server" Text='<%# Bind("sdID") %>'></asp:Label>
                 </EditItemTemplate>
                <ItemTemplate>
                 <asp:Label ID="sdID" runat="server" Text='<%# Bind("sdID") %>'></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="Send Client Disruption Notification?" SortExpression="clientDisruptionNotification" meta:resourcekey="SendClientDisruptionNotificationResource">
                <EditItemTemplate>
                 <asp:RadioButtonList runat="server" ID="clientDisruptionNotification" SelectedValue='<%# Bind("clientDisruptionNotification") %>'>
                  <asp:ListItem Value="Yes">Yes</asp:ListItem>
                  <asp:ListItem Value="No">No</asp:ListItem>
                 </asp:RadioButtonList>
                </EditItemTemplate>
                <ItemTemplate>
                 <asp:Label ID="clientDisruptionNotification" runat="server" Text='<%# Bind("clientDisruptionNotification") %>'></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="Disruption Status" SortExpression="sdStatus" meta:resourcekey="HeaderOutageStatusResource">
                <EditItemTemplate>
                 <asp:DropDownList runat="server" ID="sdStatus" SelectedValue='<%# Bind("sdStatus") %>'> <%--AutoPostBack="true" OnSelectedIndexChanged="sdStatus_SelectedIndexChanged"--%>
                  <asp:ListItem Value="Open" Text="Open" />
                  <asp:ListItem Value="Closed" Text="Closed" />
                  <asp:ListItem Value="Canceled" Text="Canceled" />
                 </asp:DropDownList>
                 </EditItemTemplate>
                <ItemTemplate>
                 <asp:Label ID="sdStatus" runat="server" Text='<%# Bind("sdStatus") %>'></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="Closed Date, Time &amp; Time Zone" SortExpression="closedDateOfDisruption" meta:resourcekey="DateTimeTimeZoneClosedResource">
                <EditItemTemplate>
                 <div id="divCalendarExtender" style="position:absolute; z-index:1;"><%-- to fix CalendarExtender z-index issues --%>
                  <asp:TextBox runat="server" ID="closedDateOfDisruption" Text='<%# Bind("closedDateOfDisruption", "{0:MM/dd/yyyy}") %>' />
                  <%--<asp:Image runat="server" ID="imgClosedDateOfDisruption" ImageUrl="~/images/calendar.png" />--%> <%-- commented in case it needs to be used later --%>
                  <span>&nbsp;(&quot;mm/dd/yyyy&quot; format)</span>
                  <ajaxToolkit:CalendarExtender runat="server" ID="CalendarClosedDateOfDisruption" TargetControlID="closedDateOfDisruption" Format="MM/dd/yyyy"></ajaxToolkit:CalendarExtender>
                  <%--<asp:RequiredFieldValidator runat="server" ControlToValidate="closedDateOfDisruption" ErrorMessage="Closed date of disruption is blank" meta:resourcekey="ErrorMessageDateOfDisruptionClosedResource">*</asp:RequiredFieldValidator>
                  <asp:RangeValidator runat="server" ID="rvClosedDateOfDisruption" ErrorMessage="Selecting future dates is not permitted" Font-Size=".85em" ControlToValidate="closedDateOfDisruption" Type="Date" meta:resourcekey="ErrorMessageDateOfDisruptionFutureResource"></asp:RangeValidator>--%>
                 </div>
                 <br />
                 <br />
                 <asp:TextBox runat="server" ID="closedTimeOfDisruption" Text='<%# Bind("closedTimeOfDisruption", "{0:HH:mm}") %>'></asp:TextBox>
                 <%--<asp:RequiredFieldValidator runat="server" id="rfvClosedTimeOfDisruption" ErrorMessage="Closed time of disruption must be in the format HH:MM (military time)" ControlToValidate="closedTimeOfDisruption" meta:resourcekey="ErrorMessageTimeOfDisruptionResource"><span class="rfValidator">*</span></asp:RequiredFieldValidator>--%>
                 <ajaxToolkit:MaskedEditExtender runat="server" ID="meeClosedTimeOfDisruption" TargetControlID="closedTimeOfDisruption" MaskType="Time" Mask="99:99"></ajaxToolkit:MaskedEditExtender>
                 <br />
                 <br />
                 <asp:DropDownList runat="server" ID="closedTimeZone" SelectedValue='<%# Bind("closedTimeZone") %>' DataValueField="timezoneOffset" DataTextField="timezoneOffset" DataSourceID="odsTimeZone" AppendDataBoundItems="true">
                  <asp:ListItem Value="" Text="Select a time zone..." />
                 </asp:DropDownList>
                 <%--<asp:RequiredFieldValidator runat="server" id="rfvClosedTimeZone" ErrorMessage="Closed time time zone is blank" ControlToValidate="closedTimeZone" meta:resourcekey="ErrorMessageTimeZoneClosedResource">*</asp:RequiredFieldValidator>--%>
                </EditItemTemplate>
                <ItemTemplate>
                 <asp:Label runat="server" ID="closedDateOfDisruption" Text='<%# Bind("closedDateOfDisruption", "{0:MM/dd/yyyy}") %>'></asp:Label>
                 <asp:Label runat="server" ID="closedTimeOfDisruption" Text='<%# Bind("closedTimeOfDisruption", "{0:HH:mm}") %>'></asp:Label>
                 <asp:Label runat="server" ID="closedTimeZone" Text='<%# Bind("closedTimeZone") %>'></asp:Label>
                 <br />
                 <span>&nbsp;(&quot;mm/dd/yyyy&quot; format)</span>
                 <br />
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="Update Diary" SortExpression="updateStatus" meta:resourcekey="HeaderUpdateDiaryResource">
                <EditItemTemplate>
                 <asp:TextBox ID="updateStatus" runat="server" TextMode="MultiLine" Columns="60" Rows="2" CssClass="textbox" Font-Names="Tahoma" meta:resourcekey="updateStatusResource1"></asp:TextBox>
                 <br />
                 <asp:Label ID="displayUpdateStatus" runat="server" Text='<%# Bind("updateStatus") %>' meta:resourcekey="displayUpdateStatusResource1"></asp:Label>
                </EditItemTemplate>
                <ItemTemplate>
                 <asp:Label ID="labelUpdateStatus" runat="server" Text='<%# Bind("updateStatus") %>' meta:resourcekey="labelUpdateStatusResource1"></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="Creator" SortExpression="creatorName" meta:resourcekey="HeaderCreatorResource">
                <EditItemTemplate>
                 <asp:Label ID="creatorName" runat="server" Text='<%# Bind("creatorName") %>' meta:resourcekey="creatorNameResource1"></asp:Label>
                </EditItemTemplate>
                <ItemTemplate>
                 <asp:Label ID="creatorName" runat="server" Text='<%# Bind("creatorName") %>' meta:resourcekey="creatorNameResource2"></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="Primary Contact Name" SortExpression="primaryContactName" meta:resourcekey="HeaderPrimaryContactNameResource">
                <EditItemTemplate>
                 <asp:Textbox ID="primaryContactName" runat="server" CssClass="textBox" Text='<%# Bind("primaryContactName") %>' meta:resourcekey="primaryContactNameResource1"></asp:Textbox>
                 <asp:RequiredFieldValidator ID="rfvPrimaryContactName" runat="server" ControlToValidate="primaryContactName" ErrorMessage="Primary contact name is blank" meta:resourcekey="ErrorMessagePrimaryContactNameResource"><span class="rfValidator">*</span></asp:RequiredFieldValidator>
                </EditItemTemplate>
                <ItemTemplate>
                 <asp:Label ID="primaryContactName" runat="server" Text='<%# Bind("primaryContactName") %>' meta:resourcekey="primaryContactNameResource2"></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="Primary Contact Phone" SortExpression="primaryContactPhone" meta:resourcekey="HeaderPrimaryContactPhoneResource">
                <EditItemTemplate>
                 <asp:TextBox id="primaryContactPhone" runat="server" CssClass="textBox" Text='<%# Bind("primaryContactPhone") %>' meta:resourcekey="primaryContactPhoneResource1"></asp:TextBox>
                 <asp:RequiredFieldValidator id="rfvPrimaryContactPhone" runat="server" ErrorMessage="Primary contact phone number is blank" ControlToValidate="primaryContactPhone" meta:resourcekey="ErrorMessagePrimaryContactPhoneResource">*</asp:RequiredFieldValidator>
                </EditItemTemplate>
                <ItemTemplate>
                 <asp:Label ID="primaryContactPhone" runat="server" Text='<%# Bind("primaryContactPhone") %>' meta:resourcekey="primaryContactPhoneResource2"></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="Start Date, Time &amp; Time Zone" SortExpression="startDateOfDisruption" meta:resourcekey="DateTimeTimeZoneStartResource">
                <EditItemTemplate>
                 <div id="divCalendarExtender" style="position:absolute; z-index:1;"> <%-- to fix CalendarExtender z-index issues --%>
                  <asp:TextBox runat="server" ID="startDateOfDisruption" Text='<%# Bind("startDateOfDisruption", "{0:MM/dd/yyyy}") %>' />
                  <%--<asp:Image runat="server" ID="imgStartDateOfDisruption" ImageUrl="~/images/calendar.png" />--%> <%-- commented in case it needs to be used later --%>
                  <span>&nbsp;(&quot;mm/dd/yyyy&quot; format)</span>
                  <ajaxToolkit:CalendarExtender runat="server" ID="CalendarStartDateOfDisruption" TargetControlID="startDateOfDisruption" Format="MM/dd/yyyy"></ajaxToolkit:CalendarExtender>
                  <asp:RequiredFieldValidator runat="server" ControlToValidate="startDateOfDisruption" ErrorMessage="Start date of disruption is blank" meta:resourcekey="ErrorMessageDateOfDisruptionStartResource">*</asp:RequiredFieldValidator>
                  <asp:RangeValidator runat="server" ID="rvStartDateOfDisruption" ErrorMessage="Selecting future dates is not permitted" Font-Size=".85em" ControlToValidate="startDateOfDisruption" Type="Date" meta:resourcekey="ErrorMessageDateOfDisruptionFutureResource"></asp:RangeValidator>
                 </div>
                 <br />
                 <br />
                 <asp:TextBox runat="server" id="startTimeOfDisruption" Text='<%# Bind("startTimeOfDisruption", "{0:HH:mm}") %>'></asp:TextBox>
                 <asp:RequiredFieldValidator runat="server" id="rfvStartTimeOfDisruption" ErrorMessage="Start time of disruption must be in the format HH:MM (military time)" ControlToValidate="startTimeOfDisruption" meta:resourcekey="ErrorMessageTimeofDisruptionResource"><span class="rfValidator">*</span></asp:RequiredFieldValidator>
                 <ajaxToolkit:MaskedEditExtender runat="server" ID="meeStartTimeOfDisruption" TargetControlID="startTimeOfDisruption" MaskType="Time" Mask="99:99"></ajaxToolkit:MaskedEditExtender>
                 <br />
                 <br />
                 <asp:DropDownList runat="server" id="startTimeZone" SelectedValue='<%# Bind("startTimeZone") %>' DataValueField="timezoneOffset" DataTextField="timezoneOffset" DataSourceID="odsTimeZone">
                 </asp:DropDownList>
                 <asp:RequiredFieldValidator runat="server" id="rfvStartTimeZone" ErrorMessage="Start time time zone is blank" ControlToValidate="startTimeZone" meta:resourcekey="ErrorMessageTimeZoneStartResource">*</asp:RequiredFieldValidator>
                </EditItemTemplate>
                <ItemTemplate>
                 <asp:Label runat="server" ID="startDateOfDisruption" Text='<%# Bind("startDateOfDisruption", "{0:MM/dd/yyyy}") %>'></asp:Label>
                 <asp:Label runat="server" ID="startTimeOfDisruption" Text='<%# Bind("startTimeOfDisruption", "{0:HH:mm}") %>'></asp:Label>
                 <asp:Label runat="server" ID="startTimeZone" Text='<%# Bind("startTimeZone") %>'></asp:Label>
                 <br />
                 <span>&nbsp;(&quot;mm/dd/yyyy&quot; format)</span>
                 <br />
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="Short Description" SortExpression="shortDescription" meta:resourcekey="HeaderShortDescriptionResource">
                <EditItemTemplate>
                 <asp:TextBox ID="shortDescription" runat="server" CssClass="textBox" MaxLength="100" Text='<%# Bind("shortDescription") %>' meta:resourcekey="shortDescriptionResource1"></asp:TextBox>
                 <asp:RequiredFieldValidator ID="rfvShortDescription" ControlToValidate="shortDescription" runat="server" ErrorMessage="Short description is blank" meta:resourcekey="ErrorMessageShortDescriptionResource"><span class="rfValidator">*</span></asp:RequiredFieldValidator>
                </EditItemTemplate>
                <ItemTemplate>
                 <asp:Label ID="shortDescription" runat="server" Text='<%# Bind("shortDescription") %>' meta:resourcekey="shortDescriptionResource2"></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="Full Description" SortExpression="fullDescription" meta:resourcekey="HeaderFullDescriptionResource">
                <EditItemTemplate>
                 <asp:TextBox ID="fullDescription" runat="server" TextMode="MultiLine" Columns="60" Rows="8" Font-Names="Tahoma" Text='<%# Bind("fullDescription") %>'></asp:TextBox>
                 <asp:RequiredFieldValidator ID="rfvFullDescription" ControlToValidate="fullDescription" runat="server" ErrorMessage="Full description is blank" meta:resourcekey="ErrorMessageFullDescriptionResource"><span class="rfValidator">*</span></asp:RequiredFieldValidator>
                </EditItemTemplate>
                <ItemTemplate>
                 <asp:Label ID="fullDescription" runat="server" Text='<%# Bind("fullDescription") %>' meta:resourcekey="fullDescriptionResource2"></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="Business Impact" SortExpression="businessImpact" meta:resourcekey="HeaderBusinessImpactResource">
                <EditItemTemplate>
                 <asp:DropDownList runat="server" ID="businessImpact" SelectedValue='<%# Bind("businessImpact") %>' DataSourceID="odsBusinessImpact" DataTextField="businessImpact" DataValueField="businessImpact">
                 </asp:DropDownList>
                </EditItemTemplate>
                <ItemTemplate>
                 <asp:Label ID="businessImpact" runat="server" Text='<%# Bind("businessImpact") %>' meta:resourcekey="businessImpactResource2"></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="Geography Affected" SortExpression="geographyAffected" meta:resourcekey="HeaderGeographyAffectedResource">
                <EditItemTemplate>
                 <asp:Label ID="selectedGeographyAffected" runat="server" Visible="False" Text='<%# Bind("geographyAffected") %>' meta:resourcekey="selectedGeographyAffectedResource1"></asp:Label>
                 <asp:CheckBoxList ID="geographyAffected" runat="server" DataSourceID="odsGeographyAffected" DataTextField="geographyAffected" DataValueField="geographyAffected"></asp:CheckBoxList>
                 <skm:CheckBoxListValidator id="cbvGeographyAffected" runat="server" CssClass="checkboxField" ErrorMessage="You must select at least one affected geography" ControlToValidate="geographyAffected" Display="Dynamic" MinimumNumberOfSelectedCheckBoxes="1" meta:resourcekey="ErrorMessageGeographyAffectedResource"></skm:CheckBoxListValidator>
                </EditItemTemplate>
                <ItemTemplate>
                 <asp:Label ID="selectedGeographyAffected" runat="server" Text='<%# Bind("geographyAffected") %>' meta:resourcekey="selectedGeographyAffectedResource2"></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="Framework" SortExpression="frameworkAffected" meta:resourcekey="HeaderFrameworkAffectedResource">
                <EditItemTemplate>
                 <asp:DropDownList runat="server" ID="frameworkAffected" SelectedValue='<%# Bind("frameworkAffected") %>' DataSourceID="odsFrameworkAffected" DataTextField="frameworkAffected" DataValueField="frameworkAffected" meta:resourcekey="frameworkAffectedResource1">
                 </asp:DropDownList>
                </EditItemTemplate>
                <ItemTemplate>
                 <asp:Label ID="frameworkAffected" runat="server" Text='<%# Bind("frameworkAffected") %>' meta:resourcekey="frameworkAffectedResource2"></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="Expected Duration" SortExpression="expectedDuration" meta:resourcekey="HeaderExpectedDurationResource">
                <EditItemTemplate>
                 <asp:TextBox ID="expectedDuration" runat="server" Text='<%# Bind("expectedDuration") %>' CssClass="textBox" meta:resourcekey="expectedDurationResource1"></asp:TextBox>
                 <asp:RequiredFieldValidator ID="rfvExpectedDuration" ControlToValidate="expectedDuration" runat="server" ErrorMessage="Expected duration is blank" meta:resourcekey="ErrorMessageExpectedDurationResource"><span class="rfValidator">*</span></asp:RequiredFieldValidator>
                </EditItemTemplate>
                <ItemTemplate>
                 <asp:Label ID="expectedDuration" runat="server" Text='<%# Bind("expectedDuration") %>' meta:resourcekey="expectedDurationResource2"></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="Framework Sub-Category" SortExpression="frameworkSubCategory" meta:resourcekey="HeaderFrameworkSubCategoryResource">
                <EditItemTemplate>
                 <asp:DropDownList runat="server" ID="frameworkSubCategory" SelectedValue='<%# Bind("frameworkSubCategory") %>' DataSourceID="odsFrameworkSubCategory" DataTextField="frameworkSubCategory" DataValueField="frameworkSubCategory" AppendDataBoundItems="True" meta:resourcekey="frameworkSubCategoryResource1">
                  <asp:ListItem Value="" Text="Select a framework sub-category" />
                 </asp:DropDownList>
                </EditItemTemplate>
                <ItemTemplate>
                 <asp:Label ID="frameworkSubCategory" runat="server" Text='<%# Bind("frameworkSubCategory") %>' meta:resourcekey="frameworkSubCategoryResource2"></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="Location/Building" SortExpression="locationBuilding" meta:resourcekey="HeaderLocationBuildingResource">
                <EditItemTemplate>
                 <asp:TextBox ID="locationBuilding" runat="server" Text='<%# Bind("locationBuilding") %>' CssClass="textBox" meta:resourcekey="locationBuildingResource1"></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                 <asp:Label ID="locationBuilding" runat="server" Text='<%# Bind("locationBuilding") %>' meta:resourcekey="locationBuildingResource2"></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="Ticket Number" SortExpression="ticketNumber" meta:resourcekey="HeaderTicketNumberResource">
                <EditItemTemplate>
                 <asp:TextBox ID="ticketNumber" runat="server" Text='<%# Bind("ticketNumber") %>' CssClass="textBox" meta:resourcekey="ticketNumberResource1"></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                 <asp:Label ID="ticketNumber" runat="server" Text='<%# Bind("ticketNumber") %>' meta:resourcekey="ticketNumberResource2"></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="Ticket Severity" SortExpression="ticketSeverity" meta:resourcekey="HeaderTicketSeverityResource">
                <EditItemTemplate>
                 <asp:DropDownList runat="server" ID="ticketSeverity" SelectedValue='<%# Bind("ticketSeverity") %>' DataSourceID="odsTicketSeverity" DataTextField="ticketSeverity" DataValueField="ticketSeverity" AppendDataBoundItems="True" meta:resourcekey="ticketSeverityResource1">
                  <asp:ListItem Value="" Text="Select a severity" />
                 </asp:DropDownList>
                </EditItemTemplate>
                <ItemTemplate>
                 <asp:Label ID="ticketSeverity" runat="server" Text='<%# Bind("ticketSeverity") %>' meta:resourcekey="ticketSeverityResource2"></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="RTOP Number" SortExpression="rtopNumber" meta:resourcekey="HeaderRTOPNumberResource">
                <EditItemTemplate>
                 <asp:TextBox ID="rtopNumber" runat="server" Text='<%# Bind("rtopNumber") %>' CssClass="textBox" meta:resourcekey="rtopNumberResource1"></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                 <asp:Label ID="rtopNumber" runat="server" Text='<%# Bind("rtopNumber") %>' meta:resourcekey="rtopNumberResource2"></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="Problem Category" SortExpression="problemCategory" meta:resourcekey="HeaderProblemCategoryResource">
                <EditItemTemplate>
                 <asp:TextBox ID="problemCategory" runat="server" Text='<%# Bind("problemCategory") %>' CssClass="textBox" meta:resourcekey="problemCategoryResource1"></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                 <asp:Label ID="problemCategory" runat="server" Text='<%# Bind("problemCategory") %>' meta:resourcekey="problemCategoryResource2"></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="Change Request Number" SortExpression="changeRequestNumber" meta:resourcekey="HeaderChangeRequestNumberResource">
                <EditItemTemplate>
                 <asp:TextBox ID="changeRequestNumber" runat="server" Text='<%# Bind("changeRequestNumber") %>' CssClass="textBox" meta:resourcekey="changeRequestNumberResource1"></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                 <asp:Label ID="changeRequestNumber" runat="server" Text='<%# Bind("changeRequestNumber") %>' meta:resourcekey="changeRequestNumberResource2"></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>
               <%--<asp:TemplateField meta:resourcekey="HeaderRCADisabledResource">
                <ItemTemplate>
                 <asp:Label ID="rcaDisabled" runat="server" CssClass="rcaNotice" Text="Root Cause Analysis fields will be available in a future release" meta:resourcekey="rcaDisabledResource"></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="RCA Description" SortExpression="rcaDescription" meta:resourcekey="HeaderRCADescriptionResource">
                <ItemTemplate>
                 <asp:Label ID="rcaDescription" runat="server" Text='<%# Bind("rcaDescription") %>' meta:resourcekey="rcaDescriptionResource1"></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="Actions taken to resolve root cause" SortExpression="rcaResolveActions" meta:resourcekey="HeaderRCAResolveActionsResource">
                <ItemTemplate>
                 <asp:Label ID="rcaResolveActions" runat="server" Text='<%# Bind("rcaResolveActions") %>' meta:resourcekey="rcaResolveActionsResource1"></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>
               <asp:TemplateField HeaderText="Corrective actions taken to prevent recurrence of this disruption" SortExpression="rcaCorrectiveActions" meta:resourcekey="HeaderRCACorrectiveActionsResource">
                <ItemTemplate>
                 <asp:Label ID="rcaCorrectiveActions" runat="server" Text='<%# Bind("rcaCorrectiveActions") %>' meta:resourcekey="rcaCorrectiveActionsResource1"></asp:Label>
                </ItemTemplate>
               </asp:TemplateField>--%>
               <asp:TemplateField meta:resourcekey="SpellCheckResource">
                <EditItemTemplate>
                 <input id="SpellButton" onclick="checkSpelling()" type="button" value="Spell Check" name="btnSpellCheck" />
                </EditItemTemplate>
               </asp:TemplateField>
              </Fields>
              <FieldHeaderStyle Width="30%" HorizontalAlign="Right" Font-Bold="True" />
              <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
              <HeaderStyle BackColor="#B1CBE5" ForeColor="Black" />
              <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
              <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
              <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
              <EmptyDataRowStyle BackColor="#F7F6F3" ForeColor="#333333" />
             </asp:DetailsView>
      
       <br />
       <br />

       <%--
       **************************************************************************************
       *   ODS for display and update of detailsview
       **************************************************************************************
       --%> 
       <asp:ObjectDataSource ID="odsFWdv"
                             runat="server"
                             OnUpdating="odsFWdv_Updating"
                             OnUpdated="odsFWdv_Updated"
                             SelectMethod="GetServiceDisruptionsBySDID"
                             UpdateMethod="UpdateOpenSD"
                             TypeName="ServiceDisruptionsBLL"
                             >
        <SelectParameters>
         <asp:ControlParameter ControlID="gvServiceDisruptionsByGeoFW" Name="sdID" PropertyName="SelectedValue" Type="Int32" />
        </SelectParameters>
        <UpdateParameters>
         <asp:Parameter Name="sdID" Type="Int32" />
         <asp:Parameter Name="clientDisruptionNotification" Type="string" />
         <asp:Parameter Name="sdStatus" Type="String" />
         <asp:Parameter Name="closedDateOfDisruption" Type="DateTime" />
         <asp:Parameter Name="closedTimeOfDisruption" Type="DateTime" />
         <asp:Parameter Name="closedTimeZone" Type="String" />
         <asp:Parameter Name="updateStatus" Type="String" />
         <asp:Parameter Name="creatorName" Type="String" />
         <asp:Parameter Name="primaryContactName" Type="String" />
         <asp:Parameter Name="primaryContactPhone" Type="String" />
         <asp:Parameter Name="startDateOfDisruption" Type="DateTime" />
         <asp:Parameter Name="startTimeOfDisruption" Type="DateTime" />
         <asp:Parameter Name="startTimeZone" Type="String" />
         <asp:Parameter Name="shortDescription" Type="String" />
         <asp:Parameter Name="fullDescription" Type="String" />
         <asp:Parameter Name="businessImpact" Type="String" />
         <asp:Parameter Name="geographyAffected" Type="String" />
         <asp:Parameter Name="frameworkAffected" Type="String" />
         <asp:Parameter Name="expectedDuration" Type="String" />
         <asp:Parameter Name="frameworkSubCategory" Type="String" />
         <asp:Parameter Name="locationBuilding" Type="String" />
         <asp:Parameter Name="ticketNumber" Type="String" />
         <asp:Parameter Name="ticketSeverity" Type="String" />
         <asp:Parameter Name="rtopNumber" Type="String" />
         <asp:Parameter Name="problemCategory" Type="String" />
         <asp:Parameter Name="changeRequestNumber" Type="String" />
         <asp:Parameter Name="closedDateTime" Type="String" />
        </UpdateParameters>
       </asp:ObjectDataSource>
      <%--</ContentTemplate>
     </asp:UpdatePanel>--%>

      </ItemTemplate>
     </asp:Repeater>

     protected void dvServiceDisruptionsByGeoFW_PreRender(Object sender, EventArgs e)
     {
      // **************************************************************************************
      // * show detailsview edit buttons if user is authorized
      // **************************************************************************************
      if (!IsPostBack)
      {
       if (User.IsInRole("xxxxxxxxxx"))
       {
        EnableDisruptionEdit(sender);
       }
      }

      DetailsView dv = (DetailsView)sender;

      if (dv.CurrentMode == DetailsViewMode.Edit)
      {
       // **************************************************************************************
       // * set the min and max values for start date of disruption validator to prevent
       // * selecting future dates
       // **************************************************************************************
       RangeValidator rvSDOD = (RangeValidator)dv.FindControl("rvStartDateOfDisruption");
       rvSDOD.MinimumValue = DateTime.MinValue.ToShortDateString();
       rvSDOD.MaximumValue = DateTime.Now.Date.ToShortDateString();

       // **************************************************************************************
       // * find geography affected field and set up to populate from DB
       // **************************************************************************************
       Label lblGA = (Label)dv.FindControl("selectedGeographyAffected");
       CheckBoxList cbGA = (CheckBoxList)dv.FindControl("geographyAffected");
       String stGA = lblGA.Text;
       String[] stGASplit = stGA.Split(',');

       // **************************************************************************************
       // * select checkboxes based on what's in DB
       // **************************************************************************************
       foreach (string s in stGASplit)
       {
        String ga = s.Trim();
        for (int j = 0; j < cbGA.Items.Count; j++)
        {
         if (cbGA.Items[j].Value == ga)
         {
          cbGA.Items[j].Selected = true;
         }
        }
       }
      }
     }

     protected void odsFWdv_Updating(Object sender, ObjectDataSourceMethodEventArgs e)
     {
      DetailsView dv = (DetailsView)FindControlRecursive(rpFrameworkAffected, "dvServiceDisruptionsByGeoFW");
      String sendEmail = "";

      // **************************************************************************************
      // * gather checkboxlist items to insert into DB
      // **************************************************************************************
      CheckBoxList cblGA = (CheckBoxList)FindControlRecursive(rpFrameworkAffected, "geographyAffected");
      String sG = "";

      foreach (ListItem itemG in cblGA.Items)
      {
       if (itemG.Selected)
       {
        // **************************************************************************************
        // * list the selected item
        // **************************************************************************************
        sG += itemG.Text + ", ";
       }
      }
      if (sG.EndsWith(", "))
      {
       int desiredLength = sG.LastIndexOf(", ");
       if (desiredLength >= 0)
       {
        sG = sG.Substring(0, desiredLength);
       }
      }
      e.InputParameters["geographyAffected"] = sG;

      // **************************************************************************************
      // * format update diary to insert into DB and set send e-mail flag if diary was updated
      // **************************************************************************************
      TextBox tbUS = (TextBox)FindControlRecursive(rpFrameworkAffected, "updateStatus");
      Label tbDUS = (Label)FindControlRecursive(rpFrameworkAffected, "displayUpdateStatus");
      if (tbUS.Text != "")
      {
       e.InputParameters["updateStatus"] = DateTime.Now.ToString("MM/dd/yyyy HH:mm") + " &ndash; (" + User.Identity.Name + ") " + tbUS.Text + "<br />" + tbDUS.Text;
       sendEmail = "yes";
      }

      // **************************************************************************************
      // * set closed date and time and set send e-mail flag if sdStatus is closed
      // **************************************************************************************
      DropDownList ddlSDS = (DropDownList)FindControlRecursive(rpFrameworkAffected, "sdStatus");
      if (ddlSDS.SelectedValue == "Closed")
      {
       e.InputParameters["closedDateTime"] = DateTime.Now.ToString();
       sendEmail = "yes";
      }
      else
      {
       e.InputParameters["closedDateTime"] = "";
      }

      // **************************************************************************************
      // * check to see if value of business impact has changed from what was in DB
      // **************************************************************************************
      DropDownList ddlBI = (DropDownList)FindControlRecursive(rpFrameworkAffected, "businessImpact");
      int odsSDID = (Int32)e.InputParameters["sdID"];
      ServiceDisruptionsTableAdapter adapterFW = new ServiceDisruptionsTableAdapter();
      DataTable fwServiceDisruptions = adapterFW.GetServiceDisruptionsBySDID(odsSDID);
      foreach (DataRow biRow in fwServiceDisruptions.Rows)
      {
       String dbBI = biRow["businessImpact"].ToString();
       if (ddlBI.SelectedItem.Value != dbBI)
       {
        sendEmail = "yes";
       }
      }

      // **************************************************************************************
      // * set the value of the fields for sendUpdate from the input parameters of the
      // * required fields
      // **************************************************************************************
      DateTime startDateOfDisruption = (DateTime)e.InputParameters["startDateOfDisruption"];
      DateTime startTimeOfDisruption = (DateTime)e.InputParameters["startTimeOfDisruption"];
      String startTimeZone = e.InputParameters["startTimeZone"].ToString();
      String startDateTimeOutage = startDateOfDisruption.ToShortDateString() + " " + startTimeOfDisruption.ToString("HH:mm") + " " + startTimeZone.ToString();
      String sdStatus = e.InputParameters["sdStatus"].ToString();
      String primaryContactName = e.InputParameters["primaryContactName"].ToString();
      String primaryContactPhone = e.InputParameters["primaryContactPhone"].ToString();
      String shortDescription = e.InputParameters["shortDescription"].ToString();
      String fullDescription = e.InputParameters["fullDescription"].ToString();
      String businessImpact = e.InputParameters["businessImpact"].ToString();
      String geographyAffected = e.InputParameters["geographyAffected"].ToString();
      String frameworkAffected = e.InputParameters["frameworkAffected"].ToString();
      String expectedDuration = e.InputParameters["expectedDuration"].ToString();

      // **************************************************************************************
      // * set the value of the fields for sendUpdate from the input parameters of the
      // * optional fields, if the fields aren't blank
      // **************************************************************************************

      // **************************************************************************************
      // * find optional fields that might be blank
      // **************************************************************************************
      TextBox tbCDOD = (TextBox)FindControlRecursive(rpFrameworkAffected, "closedDateOfDisruption");
      TextBox tbCTOD = (TextBox)FindControlRecursive(rpFrameworkAffected, "closedTimeOfDisruption");
      DropDownList ddlCTZ = (DropDownList)FindControlRecursive(rpFrameworkAffected, "closedTimeZone");
      DropDownList ddlFSC = (DropDownList)FindControlRecursive(rpFrameworkAffected, "frameworkSubCategory");
      TextBox tbLB = (TextBox)FindControlRecursive(rpFrameworkAffected, "locationBuilding");
      TextBox tbTN = (TextBox)FindControlRecursive(rpFrameworkAffected, "ticketNumber");
      DropDownList ddlTS = (DropDownList)FindControlRecursive(rpFrameworkAffected, "ticketSeverity");
      TextBox tbRN = (TextBox)FindControlRecursive(rpFrameworkAffected, "rtopNumber");
      TextBox tbPC = (TextBox)FindControlRecursive(rpFrameworkAffected, "problemCategory");
      TextBox tbCRN = (TextBox)FindControlRecursive(rpFrameworkAffected, "changeRequestNumber");

      // **************************************************************************************
      // * determine if the optional fields are empty; if not, set the variable equal to the
      // * input parameters
      // **************************************************************************************
      DateTime closedDateOfDisruption = DateTime.MinValue;
      DateTime closedTimeOfDisruption = DateTime.MinValue;
      String closedTimeZone = "";
      String closedDateTimeOutage = "";
      String updateStatus = "";
      String frameworkSubCategory = "";
      String locationBuilding = "";
      String ticketNumber = "";
      String ticketSeverity = "";
      String rtopNumber = "";
      String problemCategory = "";
      String changeRequestNumber = "";

      if (tbCDOD.Text != "")
      {
       closedDateOfDisruption = (DateTime)e.InputParameters["closedDateOfDisruption"];
      }

      if (tbCTOD.Text != "")
      {
       closedTimeOfDisruption = (DateTime)e.InputParameters["closedTimeOfDisruption"];
      }

      if (ddlCTZ.SelectedValue != "")
      {
       closedTimeZone = e.InputParameters["closedTimeZone"].ToString();
      }

      if (tbCDOD.Text != "" && tbCTOD.Text != "" && ddlCTZ.SelectedValue != "")
      {
       closedDateTimeOutage = closedDateOfDisruption.ToShortDateString() + " " + closedTimeOfDisruption.ToString("HH:mm") + " " + closedTimeZone.ToString();
      }

      if (tbUS.Text != "")
      {
       updateStatus = e.InputParameters["updateStatus"].ToString();
      }
      else
      {
       updateStatus = tbDUS.Text;
      }

      if (ddlFSC.SelectedValue != "")
      {
       frameworkSubCategory = e.InputParameters["frameworkSubCategory"].ToString();
      }

      if (tbLB.Text != "")
      {
       locationBuilding = e.InputParameters["locationBuilding"].ToString();
      }

      if (tbTN.Text != "")
      {
       ticketNumber = e.InputParameters["ticketNumber"].ToString();
      }

      if (ddlTS.SelectedValue != "")
      {
       ticketSeverity = e.InputParameters["ticketSeverity"].ToString();
      }

      if (tbRN.Text != "")
      {
       rtopNumber = e.InputParameters["rtopNumber"].ToString();
      }

      if (tbPC.Text != "")
      {
       problemCategory = e.InputParameters["problemCategory"].ToString();
      }

      if (tbCRN.Text != "")
      {
       changeRequestNumber = e.InputParameters["changeRequestNumber"].ToString();
      }

      // **************************************************************************************
      // * if client notification flag was checked on input and status, diary, or
      // * business impact was changed on update (sendmail = "yes", send e-mail; if client
      // * notification was checked on update, send email
      // **************************************************************************************
      RadioButtonList rblCDN = (RadioButtonList)FindControlRecursive(rpFrameworkAffected, "clientDisruptionNotification");

      foreach (DataRow cdnRow in fwServiceDisruptions.Rows)
      {
       String dbCDN = cdnRow["clientDisruptionNotification"].ToString();
       if (dbCDN == "Yes" && sendEmail == "yes")
       {
        sendUpdate(
                   startDateTimeOutage,
                   sdStatus,
                   closedDateTimeOutage,
                   updateStatus,
                   primaryContactName,
                   primaryContactPhone,
                   shortDescription,
                   fullDescription,
                   businessImpact,
                   geographyAffected,
                   frameworkAffected,
                   expectedDuration,
                   frameworkSubCategory,
                   locationBuilding,
                   ticketNumber,
                   ticketSeverity,
                   rtopNumber,
                   problemCategory,
                   changeRequestNumber
                   );
       }
      }
     }

     

Page 1 of 1 (1 items)
Microsoft Communities
Page view counter