ASP.net事件中对控件操作不起作用,求答

qnetg123 2009-12-17 12:54:42
CS代码:
static Process p;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
open();
}
void open()
{
p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = false;
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived);
p.Start();
p.BeginOutputReadLine();
}

void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
TextBox1.Text += e.Data;
}
protected void Button1_Click(object sender, EventArgs e)
{
p.StandardInput.WriteLine("dir d:");
}
Html代码:
<asp:TextBox ID="TextBox1" runat="server" Height="297px" TextMode="MultiLine"
Width="506px"></asp:TextBox>
<br />
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />

为什么我在Process进程事件void p_OutputDataReceived(object sender, DataReceivedEventArgs e)中的代码不起作用呢。好像都不会回发到客户端去。
请问这要怎么做呢。让void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
中的代码能对客户端起作用。
...全文
112 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
qnetg123 2009-12-18
  • 打赏
  • 举报
回复
我用Timer控件定时向服务端读取了,只能这样子了,谢谢大家了。
aihui109 2009-12-17
  • 打赏
  • 举报
回复
服务器可以主动发送消息到客户端,但前提是客户端web是RIA或着ActiceX等类似的客户端技术。

一般情况下,是客户端定时到服务端“提取”消息.
qnetg123 2009-12-17
  • 打赏
  • 举报
回复
如果这样不行,那各位高手能不能给我个方法。让服务器主动向WEB发送信息呢。别笑我,我知道这样好像是不行的。有点矛盾。。能不能给我个解决方案呢,能实现就成
qnetg123 2009-12-17
  • 打赏
  • 举报
回复
不能成功。。。所以郁闷两天了,
aihui109 2009-12-17
  • 打赏
  • 举报
回复
web 是一种(客户端)请求,然后(服务端)应答的方式,看明白是“然后”。

void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
TextBox1.Text += e.Data;
}
你这方法没客户端请求,能成功?
qnetg123 2009-12-17
  • 打赏
  • 举报
回复
自己再顶起来
qnetg123 2009-12-17
  • 打赏
  • 举报
回复
8楼和9楼,,你们能把你们的方法的代码贴出来下吗,谢谢了
qnetg123 2009-12-17
  • 打赏
  • 举报
回复
回9楼,我是个新手,很新的新手。所以不懂,你就别笑了。
shclhs 2009-12-17
  • 打赏
  • 举报
回复
哈哈,太搞笑了吧,这个是asp.net 不是winform程序,每一次都是新的request, 你在server端用并行怎么可能成功。
你用ajax,然后再server端并行执行你的那个 void open() 函数。然后将结果返回给js, 然后更新,或者实现异步的handler,不然在一个web request 怎么可能做到不阻塞的并行执行。
wuyq11 2009-12-17
  • 打赏
  • 举报
回复
使用activex控件
qnetg123 2009-12-17
  • 打赏
  • 举报
回复
要怎么写呢。好像在void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
这事件里,所以东西都不会发到客户端去。
你帮我写出来下行吗
ITDC_YiWang 2009-12-17
  • 打赏
  • 举报
回复
在脚本里面进行附值
qnetg123 2009-12-17
  • 打赏
  • 举报
回复
来人啊,帮帮忙啊。先谢过了
qnetg123 2009-12-17
  • 打赏
  • 举报
回复
TO 二楼和三楼 if (!IsPostBack)注释了没用,
还有我调试过了,事件中的代码有执行过,但是执行了控件没反应,我想应该是没有回发到客户端去。
龙飞凤舞 2009-12-17
  • 打赏
  • 举报
回复
你再重新添加一下事件试试
BusyDonkey 2009-12-17
  • 打赏
  • 举报
回复
你试一试把if (!IsPostBack) 注释掉
qnetg123 2009-12-17
  • 打赏
  • 举报
回复
来人帮帮我啊。

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧