更新パネルにあるマルチビューでデータリストを使用して、さまざまな量のデータを表示しています。DataList の OnItemDataBound では、アイテムに応じて、div で囲まれた jQuery コードが追加されます。このコードが機能するように修正する方法を知っている人はいますか? サンプルコードは次のとおりです。
<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:MultiView runat="server">
<asp:View runat="server">
<asp:DataList ID="tmpDataTable" runat="server"
DataSourceID="tmpDataSource"
OnItemDataBound="tmpDataBound">
<ItemTemplate>
<a id="tstATag" runat="server" onclick="testingAlert();">
<%# Eval("Text_Col") %><a>
</ItemTemplate>
</asp:DataList>
<asp:SqlDataSource OnSelecting="PermSet" ID="tmpDataSource"
runat="server" ConnectionString="<%$ ConnectionStrings:Con %>"
SelectCommand="SELECT * FROM SampleTable">
</asp:SqlDataSource>
<div runat="server id="tmpDiv"></div>
</asp:View>
</asp:MultiView>
</ContentTemplate>
バックエンド コードは次のとおりです。
protected void tmpDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)
{
HtmlGenericControl tstATag = e.Item.FindControl("tstATag") as HtmlGenericControl;
tmpDiv.InnerHtml += @" <script type='text/javascript'>
function testingAlert() {
alert(tstATag.innerHtml);
}
</script>";
}
}