我创建了一个简单的asp.net Web应用程序。它有两个按钮,一个用于浏览文件夹(selectFolderbtn)&另一个用于浏览文件(selectFilebtn)。两个按钮的点击事件如下: -
protected void selectFolderbtn_Click(object sender, EventArgs e)
{
Thread thdSyncRead = new Thread(new ThreadStart(openfolder));
thdSyncRead.SetApartmentState(ApartmentState.STA);
thdSyncRead.Start();
}
public void openfolder()
{
FolderBrowserDialog fbd = new FolderBrowserDialog();
DialogResult result = fbd.ShowDialog();
string selectedfolder = fbd.SelectedPath;
txt_extDestLoc.Text = selectedfolder;
}
protected void selectFilebtn_Click(object sender, EventArgs e)
{
Thread thdSyncReadNew = new Thread(new ThreadStart(selectfile));
thdSyncReadNew.SetApartmentState(ApartmentState.STA);
thdSyncReadNew.Start();
}
public void selectfile()
{
OpenFileDialog fileD = new OpenFileDialog(); //create object
fileD.Filter = "Iso files|*.iso;"; //define filter
fileD.ShowDialog(); //show dialog
string globalisopath = fileD.FileName;
}
我面临的问题是,在上述两个按钮点击事件中,只有一个事件一次有效。不是这两件事。我希望点击事件都能正常工作,应该选择一个文件夹&另一个应该选择一个文件。但它不按我想要的方式工作。
为什么会这样。请建议我的解决方案或任何其他替代方案。
答案 0 :(得分:1)
你正在解决错误的问题。
在Web应用程序中使用任何Windows对话框没有正当理由。它只会在服务器上显示对话框(很可能,甚至不会显示)。您需要自己处理 - 要么您希望用户上传一些文件,要么有控制权,或者您希望他选择服务器上已存在的文件/文件夹 - 那就是完全不同。
您根本无法在Web应用程序中使用任何Windows控件。您需要使用Web控件,或编写自己的HTML + JavaScript等。