如何更改或向数据中继器添加数据并使其在ASP.NET中显示

Ste*_*GSD 2 asp.net stored-procedures repeater

这是我的代码隐藏,这将"OakTreeName"添加到datarepeater.大约有200个.

Dim cmd As New SqlClient.SqlCommand("OakTree_Load", New SqlClient.SqlConnection(ConnStr))
cmd.CommandType = CommandType.StoredProcedure
cmd.Connection.Open()
Dim datareader As SqlClient.SqlDataReader = cmd.ExecuteReader()

OakTree_Thumb_Repeater.DataSource = datareader
OakTree_Thumb_Repeater.DataBind()
cmd.Connection.Close()
Run Code Online (Sandbox Code Playgroud)

这基本上是我想用我的标记做的事情:

<ContentTemplate>
   <asp:Repeater ID="OakTree_Thumb_Repeater" runat="server">
      <ItemTemplate>
         <asp:ImageButton ImageUrl="<%# Container.DataItem("OakTreeName") %>" AlternateText="" runat="server" />
         <!-- Or I'd like to do it this way by adding a custom variable to the data repeater -->
         <asp:ImageButton ImageUrl="<%# Container.DataItem("OakTreeThumbURL") %>" AlternateText="" runat="server" />
      </ItemTemplate>
   </asp:Repeater>
</ContentTemplate>
Run Code Online (Sandbox Code Playgroud)

我想在将"OakTreeName"变量放入项目模板之前对其进行操作.基本上我需要操作"OakTreeName"变量,然后将其作为项目模板中图像按钮的ImageURL输入.我该怎么做呢?

我接近这个错吗?有没有办法在代码隐藏之前操作项目模板,然后才能显示数据转发器中的每一轮变量?

Val*_*aev 5

尝试在您的codebehind文件中添加OakTreeManipulationFunction并从模板中调用它:

<ContentTemplate>
<asp:Repeater ID="OakTree_Thumb_Repeater" runat="server">
  <ItemTemplate>
    <asp:ImageButton ImageUrl="<%# OakTreeManipulationFunction(Eval("OakTreeName").ToString()) %>" AlternateText="" runat="server" />
    <!-- Or I'd like to do it this way by adding a custom variable to the data repeater -->
    <asp:ImageButton ImageUrl="<%# Container.DataItem("OakTreeThumbURL") %>" AlternateText="" runat="server" />
  </ItemTemplate>
    </asp:Repeater>
</ContentTemplate>
Run Code Online (Sandbox Code Playgroud)

Codebehind文件:

Public Function OakTreeManipulationFunction(name as string)
    return name;
End Function
Run Code Online (Sandbox Code Playgroud)