Zmiana nazwy pliku ASP .NET

Odpowiedz Nowy wątek
2014-05-20 16:56

Rejestracja: 5 lat temu

Ostatnio: 4 lata temu

0

Witajcie mam taki projekcik w którym wyświetlam liste plików z danego folderu na której mogę robić różne operacje.

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" Width="600px">
            <Columns>
                <asp:BoundField DataField="Text" HeaderText="Lista Plików" />
                <asp:TemplateField>
                    <ItemTemplate>
                         <asp:LinkButton ID="lnkRemove" Text = "Zmień Nazwę" CommandArgument = '<%# Eval("Value") %>' runat="server" OnClick = "ZmienNazwe"></asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:LinkButton ID = "lnkDelete" Text = "Usuń Plik" CommandArgument = '<%# Eval("Value") %>' runat = "server" OnClick = "UsunPlik" />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

Mam już funkcje pozwalająca usunąć plik jednak brakuje mi możliwości zmiany jego nazwy...

protected void ZmienNazwe(object sender, EventArgs e)
        {
            string filePath = (sender as LinkButton).CommandArgument;

           //jak to zrobić? 

        }
        protected void UsunPlik(object sender, EventArgs e)
        {
            string filePath = (sender as LinkButton).CommandArgument;
            File.Delete(filePath);
            Response.Redirect(Request.Url.AbsoluteUri);
        }

Myślałem żeby włożyć TextBox w miejsce wyświetlania nazwy (tak żeby była edytowalna) a z linka "Zmień nazwę" zrobić button zapisujący zmieniona nazwę. Z tym że jak wkładam tutaj

<asp:BoundField DataField="Text" HeaderText="Lista Plików" />

TextBox to się krzaczy.. :/

Pozostało 580 znaków

2014-05-20 21:01

Rejestracja: 5 lat temu

Ostatnio: 3 lata temu

0

System.IO.File.Move("stara_nazwa", "nowa_nazwa");

Pozostało 580 znaków

2014-05-20 23:45

Rejestracja: 5 lat temu

Ostatnio: 4 lata temu

0

hehe niestety znam to, ale ta jedna linijka nie rozwiąże mojego problemu chyba że masz pomysł jak to wkomponować w GridView i LinkButton? :)

Pozostało 580 znaków

2014-05-21 08:25

Rejestracja: 5 lat temu

Ostatnio: 3 lata temu

0
d4ng napisał(a):

chyba że masz pomysł jak to wkomponować w GridView i LinkButton? :)

Nie mam, ale spróbowałbym tak, jak zrobiłeś z File.Delete ...

Pozostało 580 znaków

2014-05-21 11:48

Rejestracja: 5 lat temu

Ostatnio: 4 lata temu

0

tak tylko pracuje na starej wartości a jak wprowadzić nową w GridView? czuje że nie bardzo wiesz o co chodzi, ale dzięki za aktywność ;)

Pozostało 580 znaków

2014-05-21 12:09

Rejestracja: 5 lat temu

Ostatnio: 3 lata temu

0

No nie wiem... czy chodzi Ci o to, jak przekazać i starą i nową nazwę pliku do ZmienNazwe() ?

Pozostało 580 znaków

2014-05-21 13:43

Rejestracja: 7 lat temu

Ostatnio: 12 godzin temu

0

Pokaż okienko dialogowe do wpisania nazwy po wciśnięciu przycisku do zmiany nazwy. Łatwo, szybko, bez zbędnego kombinowania.

Pozostało 580 znaków

2014-05-21 15:30

Rejestracja: 5 lat temu

Ostatnio: 4 lata temu

0

zrobiłem mały progres tylko jak teraz zmienić nazwę pliku?

    <script type="text/javascript">
        function zmienNazwe(staranazwa) {
            var nazwa = prompt("Proszę podać nową nazwę", staranazwa);
        }
    </script>

// zwraca zmienną "nazwa" ze zmienioną wartością
protected void ZmienianieNazwy(object sender, EventArgs e)
        {
            string filePath = (sender as LinkButton).CommandArgument;
            string filename = System.IO.Path.GetFileName(filePath);
            Page.ClientScript.RegisterStartupScript(this.GetType(), "zmien", "zmienNazwe('" + filename + "')", true);

        }

Czy można jakoś uruchomić w javascript metode z aspx.cs? :)
Może macie jakieś pomysły?

edytowany 3x, ostatnio: d4ng, 2014-05-21 18:29

Pozostało 580 znaków

2014-05-22 03:28

Rejestracja: 5 lat temu

Ostatnio: 4 lata temu

0

Problem rozwiązany przy pomocy

PageMethods.zapiszNazwe(staraNazwa, nowaNazwa, onSuccess, onError);

Pozdrawiam

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0