2011-04-08 31 views
1

我有問題。按照源代碼Modalpopupextender面板,進入gridview

 <asp:GridView ID="gvMonitor" runat="server" AutoGenerateColumns="False" DataKeyNames="ticket_id" 
        DataSourceID="dsTicket" AllowPaging="True" AllowSorting="True" CellPadding="8" 
        ForeColor="#333333" GridLines="None"> 
        <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> 
        <Columns> 
         <asp:CommandField ShowSelectButton="True" /> 
         <asp:TemplateField> 
          <ItemTemplate> 
           <asp:ImageButton runat="server" ID="btnCambiaStato" ImageUrl="/images/status.png" 
            ToolTip="Cambia stato ticket" Height="24px" CommandName="CambiaStato" Width="24px" /> 
           &nbsp; 
           <asp:ImageButton runat="server" ID="ImageButton2" ImageUrl="/images/icon_history.jpg" 
            ToolTip="Storico ticket" Height="24px" CommandName="StoriaTicket" Width="24px" /> 
           <asp:ModalPopupExtender ID="mpeCambiaStato" runat="server" TargetControlID="btnCambiaStato" 
            PopupControlID="panelCambiaStatoTicket" BackgroundCssClass="modalBackground" 
            DropShadow="true" OkControlID="btnConfermaCambioStato" OnOkScript="onOk()" CancelControlID="btnCancellaCambioStato" /> 
           <asp:Panel runat="server" ID="panelCambiaStatoTicket" Style="background-color: White; 
            padding: 10px 10px 10px 10px; border-color: Black; border-width: 1px; border-style: solid;"> 
            Seleziona il nuovo stato del Ticket &nbsp; 
            <asp:DropDownList runat="server" ID="cmbStatoTicket"> 
             <asp:ListItem Text="Aperto" Value="A"></asp:ListItem> 
             <asp:ListItem Text="Chiuso" Value="C"></asp:ListItem> 
            </asp:DropDownList> 
            <br /> 
            <br /> 
            Inserisci una nota di avanzamento (opzionale) 
            <br /> 
            <asp:TextBox runat="server" ID="txtNotaAvanzamento" TextMode="MultiLine" Text="" 
             Height="60px" Width="240px"></asp:TextBox> 
            <br /> 
            <asp:Button runat="server" ID="btnConfermaCambioStato" Text="Conferma" /> 
            &nbsp; 
            <asp:Button runat="server" ID="btnCancellaCambioStato" Text="Cancella" /> 
           </asp:Panel> 
          </ItemTemplate> 
         </asp:TemplateField> 
         <asp:BoundField DataField="ticket_id" HeaderText="Nr Ticket" InsertVisible="False" 
          ReadOnly="True" SortExpression="ticket_id" /> 

的問題是,當我點擊btnConfermaCambioStato,asp.net不漲

私人小組gvMonitor_RowCommand(發送者爲對象,E爲System.Web程序。 UI.WebControls.GridViewCommandEventArgs)把手gvMonitor.RowCommand 如果(e.CommandName = 「CambiaStato」)然後

爲什麼? 謝謝

回答

0

首先,這是因爲btnConfermaCambioStato按鈕中沒有CommandName

當你點擊btnCambiaStato,該gvMonitor_RowCommand應適當提高,但它是由ModalPopupExtender吸收,因此它可以顯示彈出客戶端沒有回發。但在這種情況下它是合作的,因爲您不想在回覆確認之前回傳。

如果要在點擊btnConfermaCambioStato時提升事件,則應該爲觸發事件的按鈕添加一個CommandName。

<asp:Button runat="server" ID="btnConfermaCambioStato" 
      Text="Conferma" 
      CommandName="ConfermaCambiaStato" /> 

,但它不會工作,因爲你指定它是ModalPopupExtender的OkControl,這告訴ModalPopupExtender通過運行onOk() JavaScript函數來吸收該事件並處理它的客戶端兩種。

OkControlID="btnConfermaCambioStato" OnOkScript="onOk()"

所以,你可能要刪除這些2房產,所以你可以在使用gvMonitor_RowCommand事件的服務器端處理btnConfermaCambioStato click事件。那回答「爲什麼?」

但我認爲你不會因爲知道這件事而擺脫困境。根據你想要做的事情,在gvMonitor_RowCommand中,你可能已經將你的gridview設置爲updatepanel的asyncpostbacktrigger來處理它,你可以在服務器端隱藏ModalPopupExtender,然後在該更新面板中更新你需要的任何東西。但我只是在這裏猜測。

相關問題