Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема с DataGrid / 12 сообщений из 12, страница 1 из 1
19.05.2004, 15:40
    #32524243
set79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с DataGrid
Не могу понять!

DataGrid считывает данные из каталога, затем эти файлы изменяются - архивируются, т.е. меняют расширение, после этого DataGrid перегружается заново.

Так вот после перезагрузки данные не меняются или меняются частично, хотя физически в каталоге все нормальльно и если прогнать через Debug - установку Break Point и F11 - все нормально.

Почему так происходит?
...
Рейтинг: 0 / 0
19.05.2004, 16:12
    #32524353
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с DataGrid
Код в студию.
...
Рейтинг: 0 / 0
19.05.2004, 17:01
    #32524485
set79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с DataGrid
Код пока на VB. На C# - будет только ночью :(

Private Sub btnApprove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnApprove.Click
Dim oDataGridItem As DataGridItem
Dim ddlArchive As DropDownList
Dim sID1 As String
Dim sID2 As String
Try
For Each oDataGridItem In dgFileList.Items
ddlArchive = oDataGridItem.FindControl("archive")
If ddlArchive.SelectedItem.Text = "rar" Then
sID1 = CType(oDataGridItem.FindControl("lblColumn"), Label).Text
sID2 = Path.GetFileNameWithoutExtension(sID1)
Dim process As New Process
process.Start(Server.MapPath("Rar.exe"), "m -ep1 " & Server.MapPath("temp\" & sID2) & " " & Server.MapPath("temp\" & sID1))
process.Close()
Else
If ddlArchive.SelectedItem.Text = "zip" Then
sID1 = CType(oDataGridItem.FindControl("lblColumn"), Label).Text
sID2 = Path.GetFileNameWithoutExtension(sID1)
Dim process As New Process
process.Start(Server.MapPath("Wzzip.exe"), "-m " & Server.MapPath("temp\" & sID2) & " " & Server.MapPath("temp\" & sID1))
process.Close()
End If
End If
Next
Catch ex As Exception
lblSystemMessage.Text = ex.Message
End Try
CreateFileList()
End Sub


Private Sub CreateFileList()
Dim FileList As FileInfo()
lblCat.Text = Server.MapPath("").ToString & "\temp\"
FileList = New DirectoryInfo(Server.MapPath("temp\")).GetFiles
dgFileList.DataSource = FileList
dgFileList.DataBind()
End Sub
...
Рейтинг: 0 / 0
19.05.2004, 17:29
    #32524558
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с DataGrid
Я лучше подожду ночи, глаз к концу дня Бэйсик не берёт )))
Может кто и раньше успеет помочь )
...
Рейтинг: 0 / 0
19.05.2004, 17:35
    #32524571
set79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с DataGrid
Плохо...
Утром мне идти сдаваться :(
...
Рейтинг: 0 / 0
19.05.2004, 18:36
    #32524728
set79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с DataGrid
"У полночь близится, а Германа все нет..."
Перевод осуществил

C#

private void btnApprove_Click(object sender, System.EventArgs e)
{
DropDownList ddlArchive;
string sID1;
string sID2;

try
{
foreach (DataGridItem oDataGridItem in dgFileList.Items)
{
ddlArchive = (DropDownList)oDataGridItem.FindControl("archive");
if (ddlArchive.SelectedItem.Text == "rar")
{
sID1 = ((Label)oDataGridItem.FindControl("lblColumn")).Text.ToString();
sID2 = Path.GetFileNameWithoutExtension(sID1);
Process process = new Process();
Process.Start(Server.MapPath("Rar.exe"), "m -ep1 " + Server.MapPath(@"temp\" + sID2) + " " + Server.MapPath(@"temp\" + sID1));
process.Close();
}
else
{
if (ddlArchive.SelectedItem.Text == "zip")
{
sID1 = ((Label)oDataGridItem.FindControl("lblColumn")).Text.ToString();
sID2 = Path.GetFileNameWithoutExtension(sID1);
Process process = new Process();
Process.Start(Server.MapPath("Wzzip.exe"), "-m " + Server.MapPath(@"temp\" + sID2) + " " + Server.MapPath(@"temp\" + sID1));
process.Close();
}
}
}
}

catch (Exception exObj)
{
lblSystemMessage.Text = exObj.Message;
}
CreateFileList();

}


private void CreateFileList()
{
FileInfo[] FileList;
FileList = new DirectoryInfo(Server.MapPath(@"temp\")).GetFiles();
dgFileList.DataSource = FileList;
dgFileList.DataBind();
}
...
Рейтинг: 0 / 0
19.05.2004, 22:16
    #32524932
set79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с DataGrid
Help PLZ!!!
...
Рейтинг: 0 / 0
20.05.2004, 08:57
    #32525193
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с DataGrid
Смотрел я вчера этот код, но никаких идей (((
Надо было просить весь проект и погонять у себя (((
...
Рейтинг: 0 / 0
20.05.2004, 21:49
    #32527157
nex
nex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с DataGrid
Я не очень хорошо знаком с процессами в C#, так что прошу не принимать мои комментарии близко к сердцу :).

Пара идей:

1) Мне почему-то кажется, что процесс, где файлы архивируются не успевает отрабатывать к тому времени, когда происходит обновление грида.
Если я все правильно понял, этим может объяснятся то, что грид обновляется частично, и все нормально работает через дебагер (пошаговое выполнение дает процессу больше времени до того, как грид обновляется).

2) Попробуй убрать Process.Close() в обоих случаях? Я смотрел на несколько примеров в MSDN, и в них Process.Close() не использовался...
...
Рейтинг: 0 / 0
21.05.2004, 12:43
    #32527941
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с DataGrid
авторне успевает отрабатывать
Вролне рабочая идея - поддерживаю.
...
Рейтинг: 0 / 0
22.05.2004, 23:05
    #32529500
set79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с DataGrid
В принципе так все и оказалось, но если убрать Process.Close(), то ничего не изменилось.
Так что, видимо, здесь следует искать метод, который увеличивает время процесса, но в MSDN такого не нашел.
...
Рейтинг: 0 / 0
24.05.2004, 00:23
    #32529833
nex
nex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с DataGrid
Попробуй

Код: plaintext
process.WaitForExit();

Без параметров WaitForExit() должен ждать до тех пор, пока процесс не завершится, после чего управление будет переданно обратно твоей программе..

Вот еще ссылка на пару примеров, как это рекомендуют делать маздайцы :).
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема с DataGrid / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]