所以我有一个.NET页面,其中我有一个转发器和一个“删除”按钮,用于此转发器中的每个记录。 我想要做的是每次单击此按钮时显示一个弹出窗口,用户可以在其中输入文本并确认删除。 我已经有我的删除方法工作,我遇到了错误的弹出部分。 我已经尝试过AjaxToolkit:popupExtender但是无法正确配置它,它不会弹出无法识别按钮ID。
<ajaxToolkit:ToolkitScriptManager
ID="ToolkitScriptManager1" runat="server">
</ajaxToolkit:ToolkitScriptManager>
<div
<p style="width: 125px; margin-left: 520px">
</p>
<asp:Repeater ID="Repeater1" runat="server" EnableTheming="true" onitemcommand="Repeater1_ItemCommand" >
<HeaderTemplate>
<table class="datatable fullwidthpercent">
<tr>
<td>ID </td>
<td>  Nom </td>
<td>  Prénom </td>
<td>  Email </td>
<td>  Adresse </td>
<td>  Ville </td>
<td>  Tél </td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td> <%# Eval("id") %> </td>
<td> <%# Eval("nom") %> </td>
<td> <%# Eval("prenom") %> </td>
<td> <%# Eval("email") %> </td>
<td> <%# Eval("adresse") %> </td>
<td> <%# Eval("ville") %> </td>
<td> <%# Eval("tel") %> </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:转发器和数据库访问工作正常。
答案 0 :(得分:1)
尝试在ModalPopupExtender
下面创建一个假按钮,例如:
<asp:button runat="server" id="btnFake" style="visibility: collapse;" />
然后在TargetControlID="btnFake"
。
ModalPopupExtender
在后面的代码中,您可以设置一个人点击删除按钮的时间,即buttonEliminer_click
例程:
ModalPopupExtenderID.Show()
然后使用模式弹出窗口上的按钮从转发器中删除。这也意味着您必须从转发器的行中收集ID并将其设置为HiddenField
,例如,在将弹出的面板中。然后当一个人在您的弹出窗口中点击“提交”时,HiddenField
将拥有要删除的行的ID。
编辑:关于你的代码的一些注释,你添加的弹出扩展器是在</form>
部分之外,弹出窗口应该在这里。