2011-04-08 64 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,然后在该更新面板中更新你需要的任何东西。但我只是在这里猜测。

相关问题