![](/img/trans.png)
[英]CommandArgument, CommandName are not executed when calling Ajax JQuery on click of asp:Button
[英]ListView add image button with CommandName, Visible, CommandArgument dynamically by calling Eval()
附加的愿望输出(Record(s)))现在我可以向Records列添加多个链接,但是不能添加带有命令名称和命令参数的多图像按钮 我试图通过从后面的代码调用GetRecordLinks(Eval(“ Records”))`动态创建图像按钮,以下是我的代码
<asp:ListView ID="Student" runat="server" OnItemCommand="Student_ItemCommand" OnItemDeleting="Student_ItemDeleting" OnItemDataBound="Student_OnItemDataBound">
<LayoutTemplate>
<table class="DataGrid">
<tr class="HeaderRow">
<td style="width: 150px;">Name</td>
<td style="width: 200px;">Class(s)</td>
<td style="width: 150px;">Sex</td>
<td style="width: 200px;">Recordss</td>
<td style="width: 150px;">Status</td>
<td style="width: 30px; text-align: center;">Activate/Delete</td>
</tr>
<asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td>
<b><%# Eval("StudentLastName") %>, <%# Eval("StudentFirstName") %> <%# Eval("StudentMiddleName") %></b>
</td>
<td>
<%# JoinStringList(Eval("class")) %>
</td>
<td> <%# Eval("sex") %></td>
<td>
<%# GetRecordLinks(Eval("Records")) %>
</td>
<td>
<%# Eval("StatusID").ToString()=="0"?"Inactive":"Active" %>
</td>
<td style="text-align: center;">
<asp:ImageButton ImageUrl="img/Refresh.png" ID="StudentActive" runat="server" CommandName="Active" Visible='<%#Eval("StatusID").ToString()=="0"?true:false%>' CommandArgument='<%# Eval("StudentGUID") %>' />
<asp:ImageButton ImageUrl="img/delete.png" ID="StudentDelete" runat="server" CommandName="Delete" Visible='<%#Eval("StatusID").ToString()=="0"?false:true%>' CommandArgument='<%# Eval("StudentGUID") %>' />
</td>
</tr>
</ItemTemplate>
</asp:ListView>
下面的GetRecordLinks
方法
我想为每个学生记录追加带CommandName
, Visible
, CommandArgument
asp:ImageButton。 例如,如果学生A在一个单元格中有5条记录,每条5条记录,则应使用iteamcommand具有5个imagebutton,以便我可以根据使用意愿删除或激活该记录。
public string GetRecordLinks(object obj)
{
if (obj != null)
{
List<AppointmentDoc> docs = (List<AppointmentDoc>)obj;
StringBuilder sb = new StringBuilder();
foreach (AppointmentDoc rec in docs)
{
sb.Append("<a target='_blank' href=\"result.ashx?uuid=" + rec.UUID.ToString() + "\">" + rec.Name.Replace("student", "").Trim() + " (" + rec.SignedBy + ")" + (rec.staffSigned ? "*" : "") + "</a><br/>");
}
return sb.ToString();
}
return "";
}
希望了解我的问题让我知道是否有任何疑问
谢谢
您可以使用PlaceHolder并向其中添加ImageButtons。 首先,更换:
<td>
<%# GetRecordLinks(Eval("Records")) %>
</td>
与:
<td>
<asp:PlaceHolder ID="phRecords" runat="server" />
</td>
然后在代码背后:
void Student_OnItemDataBound(object sender, ListViewItemEventArgs e)
{
...
PlaceHolder phRecords = e.Item.FindControl("phRecords") as PlaceHolder;
ImageButton imgButton = new ImageButton();
// Set the ImageButton properties here
ph.Controls.Add(imgButton);
}
那将添加一个按钮。 您可以将ImageButton创建代码放入循环中,以将其中几个添加到同一单元格中。
您还必须在每次回发时重新创建这些ImageButton,因此您可能需要将数据绑定到Page_Load方法中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.