使用文本框和确认按钮在Repeater控件上显示弹出窗口

时间:2013-08-08 12:51:20

标签: asp.net repeater modalpopupextender

所以我有一个.NET页面,其中我有一个转发器和一个“删除”按钮,用于此转发器中的每个记录。 我想要做的是每次单击此按钮时显示一个弹出窗口,用户可以在其中输入文本并确认删除。 我已经有我的删除方法工作,我遇到了错误的弹出部分。 我已经尝试过AjaxToolkit:popupExtender但是无法正确配置它,它不会弹出无法识别按钮ID。

<ajaxToolkit:ToolkitScriptManager 
            ID="ToolkitScriptManager1" runat="server">
        </ajaxToolkit:ToolkitScriptManager>
<div
<p style="width: 125px; margin-left: 520px">
    &nbsp;</p>
<asp:Repeater ID="Repeater1" runat="server"   EnableTheming="true" onitemcommand="Repeater1_ItemCommand" >
    <HeaderTemplate>
            <table class="datatable fullwidthpercent"> 
               <tr>
                   <td>ID&nbsp</td>                     
                   <td>&nbsp Nom&nbsp</td>                             
                   <td>&nbsp Prénom&nbsp</td>                              
                   <td>&nbsp Email&nbsp</td>                      
                   <td>&nbsp Adresse&nbsp</td>
                   <td>&nbsp Ville&nbsp</td>
                   <td>&nbsp Tél&nbsp</td>
               </tr>

    </HeaderTemplate>
        <ItemTemplate>

               <tr>
                   <td>&nbsp<%# Eval("id") %>&nbsp</td>                           
                   <td>&nbsp<%# Eval("nom") %>&nbsp</td>                         
                   <td>&nbsp<%# Eval("prenom") %>&nbsp</td>                         
                   <td>&nbsp<%# Eval("email") %>&nbsp</td>
                   <td>&nbsp<%# Eval("adresse") %>&nbsp</td>
                   <td>&nbsp<%# Eval("ville") %>&nbsp</td>
                   <td>&nbsp<%# Eval("tel") %>&nbsp</td>
                   <td><asp:Button ID="Btn1" runat="server" CommandArgument= ' <%# Eval("id") %> ' Text="Eliminer" OnClick = "buttonEliminer_click" ></asp:Button></td>                   
               </tr>                  

        </ItemTemplate>
        <SeparatorTemplate>
        <tr>
        <td colspan="6"><hr /></td>
        </tr>
        </SeparatorTemplate>
        <FooterTemplate>
           </table>
        </FooterTemplate>
</asp:Repeater>
</div>
</form>
<ajaxToolkit:PopupControlExtender runat="server" TargetControlID="Btn1"></ajaxToolkit:PopupControlExtender>

我收到以下错误:

system.argumentexception argument 'expression' is not a valid value Event validation is enabled using <pages enableEventValidation="true"/>

PS:转发器和数据库访问工作正常。

1 个答案:

答案 0 :(得分:1)

尝试在ModalPopupExtender下面创建一个假按钮,例如:

<asp:button runat="server" id="btnFake" style="visibility: collapse;" />

然后在TargetControlID="btnFake"

中设置ModalPopupExtender

在后面的代码中,您可以设置一个人点击删除按钮的时间,即buttonEliminer_click例程:

ModalPopupExtenderID.Show()

然后使用模式弹出窗口上的按钮从转发器中删除。这也意味着您必须从转发器的行中收集ID并将其设置为HiddenField,例如,在将弹出的面板中。然后当一个人在您的弹出窗口中点击“提交”时,HiddenField将拥有要删除的行的ID。

编辑:关于你的代码的一些注释,你添加的弹出扩展器是在</form>部分之外,弹出窗口应该在这里。