0

私は正常に動作している次のコードを持っています

    <asp:TemplateField>
        <ItemTemplate>
            <div runat="server" id="divFileName" class="divFileName" title='<%# Eval("FileName")%>'>
                <%# Eval("FileName")%></div>
        </ItemTemplate>
    </asp:TemplateField>

の結果はEval("FileName")、次のようなフル パス文字列を返します。

C:\Windows\Microsoft.NET\Framework\sbs_diasymreader.dll

Eval("FileName");クライアント側で、値をトリミングしEval("FileName");、フルパスなしでファイル名のみを返すjavascriptメソッドに送信したいと思います。(この例では、 を返す必要がありますsbs_diasymreader.dll)

私が達成しようとしている結果は、最終的に現在パス付きのフルネームを含むテーブルが、パスなしのファイルのみを表示することです

これはどのように行うことができますか?

4

3 に答える 3

0

FileNameフィールドにフル パスが含まれている場合は、FileInfoクラスを使用できます。

<%# new FileInfo((string)Eval("FileName")).Name %>
于 2012-11-07T08:12:31.657 に答える
0

その式はサーバー側で処理され、javascript の戻り値をグリッドに表示することはできません。関数を呼び出すだけです。代わりにこれを行う

<asp:TemplateField HeaderText="File Name">
<ItemTemplate>
   <%# System.IO.Path.GetFileName(Eval("FileName").ToString()) %>
</ItemTemplate>
</asp:TemplateField>
于 2012-11-07T08:24:27.067 に答える
0

VB.NETでは、以下を使用するか、Adrian Iftodeが言及したように使用できます。

<%# FileIO.FileSystem.GetName(Eval("FileName").ToString()) %>

または、次のように、コードを使用して jQuery を記述して各スパンを通過することもできます (それに応じてセレクターを更新します)。

    <script type="text/javascript">
        $(document).ready(function () {
            $("span").each(function () {
                $(this).text(getFileName($(this).text()));
            });
        });

        function getFileName(filePath) {
            var index = filePath.lastIndexOf("\\") + 1;
            return filePath.substring(index, filePath.length);
        }
    </script>
于 2012-11-07T08:26:05.213 に答える