1

我是 asp.net 的新手,我正在努力使用替换功能,希望有人能提供帮助。当我使用一些测试文本时,它可以正常工作(如下例所示),但是一旦我用数据库中的值(Eval(“PContent”))替换测试文本,我就会收到数据绑定错误。标签单独工作正常。

Eval()、XPath() 和 Bind() 等数据绑定方法只能在数据绑定控件的上下文中使用。

我试过 al-sorts 但我无法解决这个问题。

这是我的代码:

<asp:Label runat="server" ID="Label4" text='<%# Eval("PContent") %>' /> 
<%
Dim text1 As String = "Some text here [q]testing[/q]"
Dim output As String = text1.Replace("[q]", "<span class='quote'>")
Dim VS As String = output.Replace("[/q]", "</span>")
Response.Write(VS)
%>

感谢您抽出宝贵的时间 - 抱歉,如果这是一个非常n00b 的问题!我确实尝试在这里和谷歌上搜索答案,但我找不到任何东西......

**更新....

<asp:ListView ID="ListView1" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
<asp:Label runat="server" ID="Label5" text='<%# Eval("PMonthName")%>' />
<asp:Label runat="server" ID="Label6" text='<%# Eval("PDay")%>' /></small>
</div><!--middlebartext -->

<div class="middlebartexttitle"><a href="/Details.aspx?ID=<%# Eval("BID")%>">
<asp:Label runat="server" ID="Label3" text='<%# Eval("Header")%>' /></a><br />

 <asp:Label runat="server" ID="Label4" text='<%# Eval("PContent")%>' />
 <a href="/Details.aspx?ID=<%# Eval("BID")%>">Permalink</a>
 <div class="ruler"></div>
 </ItemTemplate>
 </asp:ListView> 



 <asp:SqlDataSource 
      ConnectionString="<%$ ConnectionStrings:Conn2 %>"
      ID="SqlDataSource1" runat="server" 
      SelectCommand="SELECT * from tablename where Deleted = 'False' Order By  DateAdded DESC"
      onselected="SqlDataSource1_Selected">
     </asp:SqlDataSource>

我已经删掉了一大段代码,所以它没有那么长:)

4

3 回答 3

1

这是另一种更短的替换方法:

C#

<%# ((string)Eval("PContent")).Replace("[/q]", "</span>") %>

VB.net

<%# (Eval("PContent").ToString().Replace("[/q]", "</span>") %>

我不太了解 Vb.net,但我认为上面的代码有效。

我希望对你有所帮助。

于 2013-06-07T10:50:19.040 回答
0

尝试改变这个:

<div class="middlebartexttitle"><a href="/Details.aspx?ID=<%# Eval("BID")%>">
<asp:Label runat="server" ID="Label3" text='<%# Eval("Header")%>' /></a><br />

<asp:Label runat="server" ID="Label4" text='<%# Eval("PContent")%>' />
<a href="/Details.aspx?ID=<%# Eval("BID")%>">Permalink</a>

至:

<div class="middlebartexttitle"><a href='/Details.aspx?ID=<%# Eval("BID")%>'>
<asp:Label runat="server" ID="Label3" text='<%# Eval("Header")%>' /></a><br />

<asp:Label runat="server" ID="Label4" text='<%# Eval("PContent")%>' />
<a href='/Details.aspx?ID=<%# Eval("BID")%>'>Permalink</a>

由于Eval它正在评估的字段需要引号,我的猜测是您定义href属性的引号将其丢弃。将它们更改为单引号(就像您在其他任何地方一样),看看是否有效。

此外,您可以在http://support.microsoft.com/kb/976112了解有关内联表达式(以及何时使用它们)的更多信息

于 2013-06-07T11:48:36.427 回答
0

我没有PContent在你的问题中看到定义,但是

做类似的事情会更简单,

Label4.Text = [value from db] 

您可以在从数据库中获取记录后设置文本

于 2013-06-07T10:46:07.810 回答