1

我是 C# 的 asp.net 新手,我需要更新 Gridview 中的一行,但我必须使用 AJAX 中的 ModalPopupExtender 和我的表的某些字段,必须是强制性的,所以,我开始使用这个控件以这种形式:首先我将一个按钮置于显示模式“none”中,作为更新面板的触发器,在gridview中我放置了一个按钮名称“Edit”,它显示了ModalPopupExtender代码,但我的麻烦来了,当我放了RequiredFieldValidator,ModalPopupExtender 没有显示,这是我的代码,请帮助我,还有一件事,我不能使用Javascript。

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="probando.aspx.cs" Inherits="Menus_Compras_probando" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
<style type="text/css">
.modalBackground
{
background-color: Gray;
filter: alpha(opacity=80);
opacity: 0.8;
z-index: 10000;
}
</style>
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="cphContenidoPrincipal" Runat="Server">

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    DataSourceID="ObjectDataSource1" DataKeyNames="_adqProveedorId">
    <Columns>
        <asp:BoundField DataField="_adqProveedorId" HeaderText="_adqProveedorId" 
            SortExpression="_adqProveedorId" />
        <asp:BoundField DataField="_Nombre" HeaderText="_Nombre" 
            SortExpression="_Nombre" />
        <asp:BoundField DataField="_Direccion" HeaderText="_Direccion" 
            SortExpression="_Direccion" />
        <asp:BoundField DataField="_OtraIdent" HeaderText="_OtraIdent" 
            SortExpression="_OtraIdent" />
        <asp:BoundField DataField="_Telefono" HeaderText="_Telefono" 
            SortExpression="_Telefono" />
        <asp:BoundField DataField="_Fax" HeaderText="_Fax" SortExpression="_Fax" />
        <asp:BoundField DataField="_Email" HeaderText="_Email" 
            SortExpression="_Email" />
        <asp:BoundField DataField="_RepresLegal" HeaderText="_RepresLegal" 
            SortExpression="_RepresLegal" />
        <asp:BoundField DataField="_NumRUC" HeaderText="_NumRUC" 
            SortExpression="_NumRUC" />
        <asp:CheckBoxField DataField="_PersonalPlanta" HeaderText="_PersonalPlanta" 
            SortExpression="_PersonalPlanta" />
        <asp:CheckBoxField DataField="_AutorizaTrasladoAF" 
            HeaderText="_AutorizaTrasladoAF" SortExpression="_AutorizaTrasladoAF" />
        <asp:BoundField DataField="_Titulo" HeaderText="_Titulo" 
            SortExpression="_Titulo" />
        <asp:BoundField DataField="_CodInt" HeaderText="_CodInt" 
            SortExpression="_CodInt" />
        <asp:BoundField DataField="_objClasificaProveedorId" 
            HeaderText="_objClasificaProveedorId" 
            SortExpression="_objClasificaProveedorId" />
        <asp:BoundField DataField="_objAgrupacionPID" HeaderText="_objAgrupacionPID" 
            SortExpression="_objAgrupacionPID" />
        <asp:BoundField DataField="_objTipoDedIRID" HeaderText="_objTipoDedIRID" 
            SortExpression="_objTipoDedIRID" />
        <asp:TemplateField>
            <ItemTemplate>
                <asp:Button ID="btnEditar" runat="server" onclick="btnEditar_Click" 
                    Text="Editar" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
    DataObjectTypeName="Sistema.BO.AdqProveedor" DeleteMethod="BorrarProveedor" 
    OldValuesParameterFormatString="original_{0}" 
    SelectMethod="SelectAllProveedores" TypeName="Sistema.BLL.BLLAdqProveedor" 
    UpdateMethod="AddUpdateProveedor"></asp:ObjectDataSource>

    <br /><br />

    <asp:Button ID="btnShowPopup" runat="server" style="display:none" />
    <asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="btnShowPopup" PopupControlID="pnlpopup"
CancelControlID="btnCancel" BackgroundCssClass="modalBackground">
</asp:ModalPopupExtender>

<asp:Panel ID="pnlpopup" runat="server" BackColor="White" style="display:none">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
            <table>
                <tr>
                    <td>
                        <asp:Label ID="Label1" runat="server" Text="Nombre:">    </asp:Label>
                    </td>
                    <td style="width: 315px">
                        <asp:TextBox ID="tbNombre" runat="server" Width="200px"></asp:TextBox>

                    </td>
                    <td>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
                            ControlToValidate="tbNombre" ErrorMessage="Campo Obligatorio"></asp:RequiredFieldValidator>
                    </td>
                    <td>
                        <asp:Label ID="Label2" runat="server" Text="Dirección:"></asp:Label>
                    </td>
                    <td>
                        <asp:TextBox ID="tbDir" runat="server" Width="300px"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:Label ID="Label3" runat="server" Text="Otra Identificación"></asp:Label>
                    </td>
                    <td style="width: 315px">
                        <asp:TextBox ID="tbOtraId" runat="server"></asp:TextBox>
                    </td>
                    <td>
                        <asp:Label ID="Label4" runat="server" Text="Teléfono"></asp:Label>
                    </td>
                    <td>
                        <asp:TextBox ID="tbTel" runat="server"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:Label ID="Label5" runat="server" Text="Fax:"></asp:Label>
                    </td>
                    <td style="width: 315px">
                        <asp:TextBox ID="tbFax" runat="server"></asp:TextBox>
                    </td>
                    <td>
                        <asp:Label ID="Label6" runat="server" Text="Email"></asp:Label>
                    </td>
                    <td>
                        <asp:TextBox ID="tbMail" runat="server"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:Label ID="Label7" runat="server" Text="Representación Legal:"></asp:Label>
                    </td>
                    <td style="width: 315px">
                        <asp:TextBox ID="tbRepLegal" runat="server"></asp:TextBox>
                    </td>
                    <td>
                        <asp:Label ID="Label8" runat="server" Text="Número RUC:"></asp:Label>
                    </td>
                    <td>
                        <asp:TextBox ID="tbRuc" runat="server"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:Label ID="Label9" runat="server" Text="Personal Planta:"></asp:Label>
                    </td>
                    <td style="width: 315px">
                        <asp:CheckBox ID="cbPersonalPlanta" runat="server" />
                    </td>
                    <td>
                        <asp:Label ID="Label12" runat="server" Text="Clasificación:"></asp:Label>
                    </td>

                </tr>
                <tr>
                    <td>
                        <asp:Label ID="Label11" runat="server" Text="Título:"></asp:Label>
                    </td>
                    <td style="width: 315px">
                        <asp:TextBox ID="tbTitulo" runat="server"></asp:TextBox>
                    </td>
                    <td>
                        <asp:Label ID="Label14" runat="server" Text="Tipo deducción IR:"></asp:Label>
                    </td>

                </tr>
                <tr>
                    <td colspan="4" style="height: 23px">
                        <asp:Label ID="lblIdProv" runat="server" Visible="False"></asp:Label>
                        <asp:Label ID="lblIdClas" runat="server" Visible="False"></asp:Label>
                        <asp:Label ID="lblAgrId" runat="server" Visible="False"></asp:Label>
                        <asp:Label ID="lblDedId" runat="server" Visible="False"></asp:Label>
                    </td>
                </tr>
                <tr>
                    <td colspan="4">
                        <asp:Label ID="lblInfo" runat="server"></asp:Label>
                        <asp:Image ID="Image1" runat="server" Height="16px" Width="16px" />
                    </td>
                </tr>
                <tr>
                    <td>
                        &nbsp;</td>
                    <td style="width: 315px">
                        &nbsp;</td>
                    <td>
                        &nbsp;</td>

                </tr>
            </table>


    <asp:Label ID="lblRes" runat="server" Text=""></asp:Label>
    <asp:Button ID="btnAct" runat="server" CommandName="Update" Text="Update" onclick="btnAct_Click" />
    <asp:Button ID="btnCancel" runat="server" Text="Cancel" />
</ContentTemplate>
</asp:UpdatePanel>

这是我背后的代码

protected void btnEditar_Click(object sender, EventArgs e)
{
    Button btndetails = sender as Button;
    GridViewRow gvrow = (GridViewRow)btndetails.NamingContainer;
    tbNombre.Text = gvrow.Cells[1].Text;
    this.ModalPopupExtender1.Show();
}
4

2 回答 2

1

这个今天为我指出了正确的方向,所以我想我会发布一个实际的代码解决方案。正如上面在评论中提到的,关键是向所有RequiredFieldValidator 控件添加一个ValidationGroup标签,这样您就可以控制何时应用验证 -

    <%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default2.aspx.vb" Inherits="ModalPopupExtenderExample.Default2" %>
    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server"><title>Test</title>

    <style type="text/css">
    body{background-color: grey; font-family: Arial, Helvetica, sans-serif;}
    .popup{background-color: white; padding:10px; border-radius:5px;}
    </style>

    </head>

    <body>
        <form id="form1" runat="server">
            <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
            <asp:Label ID="LabelAddNewContact" runat="server" Text="Add new contact"></asp:Label>
            <asp:Button ID="ButtonAddNewContact" runat="server" Text="Add" />

            <asp:Panel ID="ModalPanelAddNewContact" runat="server" Width="500px" CssClass="popup">

                <div>
                    <asp:Label ID="LabelFirstName" runat="server" Text="First Name"></asp:Label><span class="requiredSpan"> *</span>
                    <asp:TextBox ID="TextBoxFirstName" runat="server"></asp:TextBox>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidatorFirstName" ValidationGroup="AddNewContact" runat="server" ControlToValidate="TextBoxFirstName" Display="Dynamic" EnableClientScript="true" ErrorMessage="Required"></asp:RequiredFieldValidator>
                </div>
                <div>
                    <asp:Label ID="LabelEmail" runat="server" Text="Email"></asp:Label><span class="requiredSpan"> *</span>
                    <asp:TextBox ID="TextBoxEmail" runat="server"></asp:TextBox>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidatorEmail" runat="server" ValidationGroup="AddNewContact" ControlToValidate="TextBoxEmail" Display="Dynamic" EnableClientScript="true" ErrorMessage="Required"></asp:RequiredFieldValidator>            
                </div>

                <asp:Button ID="ButtonModalPanelAddNewClose" runat="server" Text="Cancel" />
                <asp:Button ID="ButtonModalPanelSaveNewContact" runat="server" Text="Save this contact" ValidationGroup="AddNewContact" />
                <asp:Button ID="ButtonAddBrandNewContact" runat="server" Text="Add" style="display:none"/>
            </asp:Panel>

            <ajaxToolkit:ModalPopupExtender ID="ModalPopupExtenderAddNewContact" runat="server" TargetControlID="ButtonAddBrandNewContact"
                PopupControlID="ModalPanelAddNewContact" CancelControlID="ButtonModalPanelAddNewClose" BehaviorID="1" />
        </form>
    </body>
    </html>
于 2016-07-06T20:37:49.213 回答
0

尝试将整个代码放在更新面板中

于 2013-04-25T00:17:18.750 回答