<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" />
<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
<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" />
<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不会上升
Private Sub gvMonitor_RowCommand(sender As Object,e As System.Web.UI.WebControls.GridViewCommandEventArgs)处理gvMonitor.RowCommand 如果(e.CommandName =“CambiaStato”)那么
为什么? 感谢
答案 0 :(得分:0)
首先,这是因为CommandName
按钮中没有btnConfermaCambioStato
。
单击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()"
因此,您可能希望删除这两个属性,以便使用btnConfermaCambioStato
事件处理服务器端上的gvMonitor_RowCommand
点击事件。回答“为什么?”
但我认为你不会因为知道这一点而摆脱困境。根据您的想法,在gvMonitor_RowCommand
中,您可能已将gridview设置为updatepanel的asyncpostbacktrigger以便顺利处理它,然后您可以在服务器端隐藏ModalPopupExtender,然后更新您需要的任何内容在该更新面板中。但我只是在这里猜测。