问题的子串() - ArgumentOutOfRangeException [英] Problem with Substring() - ArgumentOutOfRangeException

查看:188
本文介绍了问题的子串() - ArgumentOutOfRangeException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个从我的项目表显示的数据中继器。有专案编号,名称和描述。我在说明中使用子串(1,240)。但有时字符串比240短,所以我得到ArgumentOutOfRangeException。你能告诉我如何显示整个文本,如果我得到的异常。这是我的code。

 < ASP:内容ID =内容1ContentPlaceHolderID =ContentPlaceHolder1=服务器>
< ASP:面板ID =pnlDisplayProjects=服务器可见=真>
    <中心及GT;< H2>< B>Проекти< / B>< / H>< /中心及GT;
        < ASP:直放站ID =rptrProjects=服务器>
            <&HeaderTemplate中GT;
                <表边框=1的cellpadding =2CELLSPACING =2ALIGN =中心宽度=80%的风格=背景色:#F7F6F3;>
            < / HeaderTemplate中>
            <&ItemTemplate中GT;
                &所述; TR>
                    < TD align =left的风格=宽度:40像素>
                        < ASP:标签ID =LblProjectId=服务器文本='<%#的eval(专案编号)%>' />
                    < / TD>
                    < TD ALIGN =中心>
                        < ASP:标签ID =LblName=服务器文本='<%#的eval(姓名)%>' />
                    < / TD>
                < / TR>
                &所述; TR>
                    &所述; TD列跨度=2>
                        < ASP:标签ID =LblDescription=服务器文本='<%#的eval(说明)的ToString()子串(1,240)+...%>'/ >
                        < ASP:超链接ID =HlMore=服务器NavigateUrl ='<%#?〜/项目/ ViewProject.aspx专案编号=+的eval(专案编号)%>'文本=更多/>
                    < / TD>
                < / TR>
            < / ItemTemplate中>
            < FooterTemplate>
                < /表>
            < / FooterTemplate>
        < / ASP:直放站>
< / ASP:面板>

 保护覆盖无效在preRender(EventArgs的发送)
    {
        变种表= Projects.GetTableWithProjects();        如果(table.Rows.Count大于0)
        {
            rptrProjects.DataSource =表;
            rptrProjects.DataBind();
        }
        其他
        {
            pnlDisplayProjects.Visible = FALSE;
            Master.PrintMessage(没有项目。);
        }
    }


解决方案

 字符串DEC =说明;
字符串结果= dec.SubString(0,dec.Length> 240 240:dec.Length)

I have a repeater that displays data from my Projects table. There are projectId, name and description. I use Substring(1, 240) on description. But sometimes the string is shorter than 240, so I get ArgumentOutOfRangeException. Can you tell me how to display the whole text if I get the exception. This is my code.

    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:Panel ID="pnlDisplayProjects" runat="server" Visible="true">
    <center><h2><b>Проекти</b></h2></center>
        <asp:Repeater ID="rptrProjects" runat="server">
            <HeaderTemplate>
                <table border="1" cellpadding="2" cellspacing="2" align="center" width="80%" style="background-color:#F7F6F3;">
            </HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td align="left" style="width:40px">
                        <asp:Label ID="LblProjectId" runat="server" Text='<%# Eval("ProjectID") %>' />
                    </td>
                    <td align="center">
                        <asp:Label ID="LblName" runat="server" Text='<%# Eval("Name") %>' />
                    </td>
                </tr>
                <tr>
                    <td colspan="2">
                        <asp:Label ID="LblDescription" runat="server" Text='<%# Eval("Description").ToString().Substring(1, 240) + "..." %>'/>
                        <asp:HyperLink ID="HlMore" runat="server" NavigateUrl='<%#"~/Project/ViewProject.aspx?projectId=" + Eval("ProjectID") %>' Text="More" />
                    </td>
                </tr>
            </ItemTemplate>
            <FooterTemplate>
                </table>
            </FooterTemplate>
        </asp:Repeater>
</asp:Panel>

 protected override void OnPreRender(EventArgs e)
    {
        var table = Projects.GetTableWithProjects();

        if (table.Rows.Count > 0)
        {
            rptrProjects.DataSource = table;
            rptrProjects.DataBind();
        }
        else
        {
            pnlDisplayProjects.Visible = false;
            Master.PrintMessage("There are no projects.");
        }
    }

解决方案

string dec = "description";
string result = dec.SubString( 0, dec.Length > 240 ? 240 : dec.Length )

这篇关于问题的子串() - ArgumentOutOfRangeException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆