<asp:GridView ID="GridView1" runat="server" Width="190" AutoGenerateColumns="false" ShowHeader="false" DataKeyNames="bbs_id" GridLines="None">
                                <RowStyle Height="32" />
                                <Columns>
                                    <asp:TemplateField HeaderText="主题" ItemStyle-HorizontalAlign="Left">
                                        <ItemTemplate>
                                            <%
                                                string sShowTopic = Eval("bbs_topic").ToString();
                                                int iTopicLen = Function.GetEnglishLength(sShowTopic);
                                                if (iTopicLen > 27)
                                                {
                                                    sShowTopic = Function.GetEnglistSubstring(sShowTopic, 0, 25) + "..";
                                                }
                                            %>
                                            <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# DataBinder.Eval(Container,"DataItem.bbs_id", "Items/ShowItem.aspx?id={0}") %>'> 此处如何输出上面定义的 sShowTopic 变量? </asp:HyperLink>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                </Columns>
                            </asp:GridView><asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# DataBinder.Eval(Container,"DataItem.bbs_id", "Items/ShowItem.aspx?id={0}") %>'> 此处如何输出上面定义的 sShowTopic 变量? </asp:HyperLink>

解决方案 »

  1.   

    试下  <%=sShowTopic %>  这样输出
      

  2.   

    这样不行,说sShowTopic没定义。
      

  3.   

    你上面的定义过程应该整个被当做一个代码块来处理了吧,把它定义到后台的全局变量区,这里给赋值,应该就没问题了。还有,放在后台应该是public的,否则前端访问不到的。
      

  4.   

    在后台定义一个方法
    public string GetSShowTopic(Container container){
     string sShowTopic = DataBinder.Eval(container,"bbs_topic").ToString();
      int iTopicLen = Function.GetEnglishLength(sShowTopic);
      if (iTopicLen > 27)
      {
      sShowTopic = Function.GetEnglistSubstring(sShowTopic, 0, 25) + "..";
      }
    }
    然后在前台<%=GetSShowTopic(Container) %>就可以了