gpt4 book ai didi

asp.net - 从 ItemDataBound 事件中的转发器控件获取值

转载 作者:行者123 更新时间:2023-12-02 13:52:59 26 4
gpt4 key购买 nike

如何在 ItemDataBound 事件中获取转发器控件的值我写了下面的asp代码

<asp:Repeater ID="repeaterItems" runat="server" OnItemDataBound="rptData_ItemDataBound"  >
<itemtemplate>
<tr>
<td style="font-family:Tahoma; font-size:small"><asp:Label id="content" runat="server">&nbsp;&nbsp;<%#DataBinder.Eval(Container.DataItem, "cont")%></asp:Label></td>

</tr>

<tr><td style="font-family:Verdana; font-size:small"><asp:Label id="url" runat="server"><a style="color:Green" href="<%#DataBinder.Eval(Container.DataItem, "url")%>" target="_blank"><%#DataBinder.Eval(Container.DataItem, "url")%></a></asp:Label></td></tr>
<tr><td><asp:LinkButton runat="server" ID="glossary" >Glossary</asp:LinkButton></td></tr>
<tr><td><asp:HiddenField runat="server" ID="id1"/><%#DataBinder.Eval(Container.DataItem, "id")%></td></tr>
<tr><td></td></tr><tr><td></td></tr><tr><td></td></tr>
</itemtemplate>
</asp:Repeater>

以及 vb.net 中的 ItemDataBound 事件

 Protected Sub rptData_ItemDataBound(ByVal source As Object, ByVal e As RepeaterItemEventArgs)

Dim content As String = ""
Dim url As String = ""
Dim lbl1 As Label = TryCast(e.Item.FindControl("content"), Label)
Dim lbl2 As Label = TryCast(e.Item.FindControl("url"), Label)
content = lbl1.Text
url = lbl2.Text
Dim btn As LinkButton = CType(e.Item.FindControl("glossary"), LinkButton)

btn.PostBackUrl = "glossary.aspx?cont=" + content + "&url=" + url
end sub

但我在内容和网址中得到空值...请帮忙

最佳答案

首先在标记中使用标签的 Text 属性,不要将 databinder.Eval 放在

<asp:Label ..> do not put content here </asp:Label>

在项目数据绑定(bind)事件中,首先找出哪个模板中的控件。

按照这个例子:

标记:

<asp:Repeater ID="Repeater1" runat="server" 
onitemdatabound="Repeater1_ItemDataBound">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("content") %>'></asp:Label>
<asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton>
</ItemTemplate>
<AlternatingItemTemplate></AlternatingItemTemplate>
<SeparatorTemplate></SeparatorTemplate>
</asp:Repeater>

源代码:

C#:

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item)
{
Label lbl = (Label)e.Item.FindControl("Label1");
LinkButton link = (LinkButton)e.Item.FindControl("LinkButton1");
link.PostBackUrl = "abcd/" + lbl.Text;
}
}

VB.Net:

Protected Sub Repeater1_ItemDataBound(sender As Object, e As RepeaterItemEventArgs)
If e.Item.ItemType = ListItemType.Item Then
Dim lbl As Label = DirectCast(e.Item.FindControl("Label1"), Label)
Dim link As LinkButton = DirectCast(e.Item.FindControl("LinkButton1"), LinkButton)
link.PostBackUrl = "abcd/" + lbl.Text
End If
End Sub

关于asp.net - 从 ItemDataBound 事件中的转发器控件获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5374113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com