Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
2sxc |通过修剪w/Javascript方法删除文件路径_Javascript_Razor_2sxc - Fatal编程技术网

2sxc |通过修剪w/Javascript方法删除文件路径

2sxc |通过修剪w/Javascript方法删除文件路径,javascript,razor,2sxc,Javascript,Razor,2sxc,我显示了以下文件路径: 我只想显示文件名'Doc1'减去路径和扩展名 我尝试了以下内容,但没有成功,如果您能进一步说明我做错了什么,我将不胜感激 @functions{ public static string SplitWord(string text, int length) { string str = text; int n = str.LastIndexOf("."); string str1=str.Subst

我显示了以下文件路径:

我只想显示文件名'Doc1'减去路径和扩展名

我尝试了以下内容,但没有成功,如果您能进一步说明我做错了什么,我将不胜感激

    @functions{
    public static string SplitWord(string text, int length)
    {
        string str = text;
        int n = str.LastIndexOf(".");
        string str1=str.Substring(n,str.LastIndexOf("/"));
        str1=str1.Substring(1,str1.Length);
        return str1;
    }
}
<ol>
    @foreach (var q in AsDynamic(App.Data["CatFilter"]))
    {
    <li class="sc-element faq-set faq-setOne" data-tags="@String.Join(",", ((List<DynamicEntity>)q.Categories).Select(a => AsDynamic(a).EntityId))">
        @q.Toolbar @Edit.Toolbar(actions: "edit,new", contentType: "CatFilter")
        <a class="faq-question" style="cursor: pointer">
            @if(!String.IsNullOrEmpty(q.LinkText))
            {
               SplitWord(@q.LinkText,@q.LinkText.Length);
            } else {
               SplitWord(@q.Link,@q.Link.Length);
            }
        </a>
    </li>
    }
</ol>

Thx,

您实际上只是使用了错误的子字符串。你可能想要

public static string SplitWord(string text, int length)
{
    int slash = text.LastIndexOf("/");
    int dot = text.LastIndexOf(".");
    return text.Substring(slash + 1, dot - slash);
}

试一试-可能需要在其中一个值上再加一个+1或-1,但这样就可以了

正如你所说,你做了一个小小的调整

我还尝试集成一个日期字段,这样无论用户选择什么日期,它都会显示当前的上传日期

是否有一个字符串输入datepicker字段的默认值以显示“今天”,而不是用户必须在picker中单击它?再次混合问题:

@functions{

    public static string SplitWord(string text,DateTime datetime)
    {

        int slash = text.LastIndexOf("/");

        int dot = text.LastIndexOf(".");

        dot--;

        var data = text.Substring(slash + 1, dot - slash);

        return data + " " + datetime.ToLongDateString();

    }

}
@{
    var all = AsDynamic(App.Data["CatFilter"]);
}
<ol>
    @foreach (var q in AsDynamic(App.Data["CatFilter"]))
    {
    <li class="sc-element faq-set faq-setOne" data-tags="@String.Join(",", ((List<DynamicEntity>)q.Categories).Select(a => AsDynamic(a).EntityId))">
        @q.Toolbar @Edit.Toolbar(actions: "edit,new", contentType: "CatFilter")
        <a class="faq-question" style="cursor: pointer">
            @if(!String.IsNullOrEmpty(q.LinkText))
            {

        @q.LinkText
            } else {
                @SplitWord(q.Link,q.Date);
            }
        </a>
    </li>
    }
</ol>
更新

这是您的另一个模板,我应用了SplitWord函数,但导致了一个错误。我看不出和上面的代码有什么不同

这是我指的代码:

@using ToSic.SexyContent

@* put all necessary link/script tags here *@
@RenderPage("_Shared - Assets.cshtml", new { parts = "styles,scripts,height"})

@{
    // get helper commands
    var Helpers = CreateInstance("_Helpers.cshtml");
}
    @functions{
        public static string SplitWord(string text)
        {
            int slash = text.LastIndexOf("/");
            var data = text.Substring(slash + 1);
            return data;
        }
    }
<div class="clearfix">
    <div class="co-container-outer">
        <div class="co-container-inner row co-navigation co-navigation-@(Dnn.Module.ModuleID) co-navigation-icon co-navigation-text">
            @foreach (var Content in AsDynamic(Data["Default"].List))

            {
                var linkInfo = Helpers.LinkInfos(Content.Link, Content.Window, Content.Icon);

                <div class="col col-xs-12 col-sm-6 col-md-4 sc-element">
                    @Edit.Toolbar(Content)
                    @if(linkInfo.Found)
                    {
                        @:<a class="co-link-box" title="@Content.Title" href="@Content.Link" target="@linkInfo.Window">
                    }
                    <div class="row">
                        <div class="col-xs-2 text-center">
                            <i class="co-icon text-primary co-icon fa @linkInfo.Icon" aria-hidden="true"></i>
                        </div>
                        <div class="col-xs-10">
                            <h3>@Content.Link</h3>
                            <div class="co-ul">
                                <a class="" title="@Content.Link" href="@Content.SubpageOne">@SplitWord(Content.SubpageOne)</a>
                            </div>
                            @if(!String.IsNullOrEmpty(Content.Link))
                            {
                                <a href="@Content.Link)"><span class="text-primary">
                                    <!--<i class="glyphicon glyphicon-chevron-right text-primary" aria-hidden="true"></i>&nbsp;-->
                                    @Content.LinkText</span></a>
                            }
                        </div>
                    </div>
                    @if(linkInfo.Found)
                    {
                        @:</a>
                    }
                </div>
            }
        </div>
    </div>
</div>

<script>
    /* Call syncHeightResponsive here - makes sure that sync height also works after ajax reload */
    $(".co-navigation-@(Dnn.Module.ModuleID) .col").syncHeightResponsive();
</script>

尝试了一下,但实际上它删除了字符串,现在尝试了一些变化,如您所说的thx
@using ToSic.SexyContent

@* put all necessary link/script tags here *@
@RenderPage("_Shared - Assets.cshtml", new { parts = "styles,scripts,height"})

@{
    // get helper commands
    var Helpers = CreateInstance("_Helpers.cshtml");
}
    @functions{
        public static string SplitWord(string text)
        {
            int slash = text.LastIndexOf("/");
            var data = text.Substring(slash + 1);
            return data;
        }
    }
<div class="clearfix">
    <div class="co-container-outer">
        <div class="co-container-inner row co-navigation co-navigation-@(Dnn.Module.ModuleID) co-navigation-icon co-navigation-text">
            @foreach (var Content in AsDynamic(Data["Default"].List))

            {
                var linkInfo = Helpers.LinkInfos(Content.Link, Content.Window, Content.Icon);

                <div class="col col-xs-12 col-sm-6 col-md-4 sc-element">
                    @Edit.Toolbar(Content)
                    @if(linkInfo.Found)
                    {
                        @:<a class="co-link-box" title="@Content.Title" href="@Content.Link" target="@linkInfo.Window">
                    }
                    <div class="row">
                        <div class="col-xs-2 text-center">
                            <i class="co-icon text-primary co-icon fa @linkInfo.Icon" aria-hidden="true"></i>
                        </div>
                        <div class="col-xs-10">
                            <h3>@Content.Link</h3>
                            <div class="co-ul">
                                <a class="" title="@Content.Link" href="@Content.SubpageOne">@SplitWord(Content.SubpageOne)</a>
                            </div>
                            @if(!String.IsNullOrEmpty(Content.Link))
                            {
                                <a href="@Content.Link)"><span class="text-primary">
                                    <!--<i class="glyphicon glyphicon-chevron-right text-primary" aria-hidden="true"></i>&nbsp;-->
                                    @Content.LinkText</span></a>
                            }
                        </div>
                    </div>
                    @if(linkInfo.Found)
                    {
                        @:</a>
                    }
                </div>
            }
        </div>
    </div>
</div>

<script>
    /* Call syncHeightResponsive here - makes sure that sync height also works after ajax reload */
    $(".co-navigation-@(Dnn.Module.ModuleID) .col").syncHeightResponsive();
</script>