迫切需要解决的一个问题,希望高手进来看一看!

stoway 2003-09-17 09:10:12
...
protected System.Web.UI.HtmlControls.HtmlControl MyBody;
...
后台:
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
MyBody.Attributes.Add("onload", "myControlInit()");
}
}

protected void MyInit(string val)
{
string[] s=val.Split(new char[]{','});
if(s.Length==1)
{
lbDisplay.Text="工 号:";
}
else
{
lbDisplay.Text="工 种:";
}
txtInceptVal.Visible=false;
}
------------------------------------------------------------------------
前台用javascript方法调用:
function myControlInit()
{
var s=window.dialogArguments;
<%MyInit(如何把s的值传到这里);%>
}
还有为什么在myControlInit()里不能为Label,隐藏的textbox控件赋值(试了document.all.id.value总是说为空或不是对象)
...全文
30 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnhgj 2003-09-18
  • 打赏
  • 举报
回复
试试self.window("窗口名").close;
enhanwei 2003-09-18
  • 打赏
  • 举报
回复
通过hidden来访问吧,对于客户端和服务器端的传递一般用这个比较容易点,
期待你成功,然后总结下!!
smiletosky 2003-09-18
  • 打赏
  • 举报
回复
服务端和客户端数据传输好象只有通过hidden,其他没做过
stoway 2003-09-18
  • 打赏
  • 举报
回复
up
stoway 2003-09-18
  • 打赏
  • 举报
回复
to cnhgj:self.window("窗口名").close这个没有关闭反而又弹出个窗体
潜水员2099 2003-09-18
  • 打赏
  • 举报
回复
来学习
stoway 2003-09-17
  • 打赏
  • 举报
回复
谢谢combread你不断给我的帮助,己经解决了,不过我想问个又碰到的一个问题,我怎么通过一个按钮使弹出的窗体关闭呢?
combread 2003-09-17
  • 打赏
  • 举报
回复
string[] s=Request.QueryString["val"].ToString().Split(new char[]{','});
combread 2003-09-17
  • 打赏
  • 举报
回复
你的函数可以这么改:
cs改成:
protected void MyInit()
{
string[] s=Request.QueryString["val"].Split(new char[]{','});
if(s.Length==1)
{
lbDisplay.Text="工 号:";
}
else
{
lbDisplay.Text="工 种:";
}
txtInceptVal.Visible=false;
}
弹出窗口改成:
window.showModalDialog("xxx.aspx?val=xxx")
xxx本来是你的参数
combread 2003-09-17
  • 打赏
  • 举报
回复
stoway(stoway) ,你是实际上就是想用showModalDialog来显示一个aspx,这个aspx要根据打开参数的不同来显示不同的信息是么。我们这个项目也有这种情况,当时我用window.dialogArguments来做,半天也搞不定,后来用的请求参数来传。不就是字符串么,放在请求字符串里面不也行么。

我的意思,要么不用window.dialogArguments,用请求字符串来传,要么在窗体加载的时候就执行window.location = window.location + "?strArg=" + window.dialogArguments;
其实换汤不换药。
jackyhzzjcn 2003-09-17
  • 打赏
  • 举报
回复
可以
stoway 2003-09-17
  • 打赏
  • 举报
回复
to webdiyer(陕北吴旗娃):我注册后就没有调用后台的方法。
to combread:我不太清楚你的这个方法怎么作,可以指点一下吗
stoway 2003-09-17
  • 打赏
  • 举报
回复
我试试
combread 2003-09-17
  • 打赏
  • 举报
回复
我刚才作了测试,
js
document.all.hid.value = "fdsafdsaf";

cs:
page_Load
{
if (!Ispostback)
Response.Write(hid.value);
}
不行。
但加载第一次以后就可以了。比如把Response.Write(hid.value);放在一个按钮的点击事件中。

要么,你用window.location = window.location + "?strArg=" + window.dialogArguments;
加载的时候用QueryString来取值。
webdiyer 2003-09-17
  • 打赏
  • 举报
回复
用后台代码中用Page.RegisterClientScriptBlock方法注册那个myControlInit()函数即可。
stoway 2003-09-17
  • 打赏
  • 举报
回复
谢谢思归,那我想实现这个的话有没有更好的办法呢
combread 2003-09-17
  • 打赏
  • 举报
回复
不过,要在页面首次加载的时候用这种方法实现,好像不行。
stoway 2003-09-17
  • 打赏
  • 举报
回复
to combread:假如我在myControlInit()里document.all.hid.value="你要传的变量";,
为什么我在myControlInit()里调用服务器端<%MyInit();%>时,不能马上得到hid.value的值(我已写上了runat=server)
saucer 2003-09-17
  • 打赏
  • 举报
回复
you have to know the difference between the client and server, know that server code and client code run in different time-space

to send back the data back to the server, you have to use <input type=hidden> or some other form elements like textbox

>>>还有为什么在myControlInit()里不能为Label,隐藏的textbox控件赋值(试了>>>>document.all.id.value总是说为空或不是对象)

view the HTML source in IE to see the ID is valid, or don't use hard-coded IDs, but use YourServerControl's ClientID property in your javascript
stoway 2003-09-17
  • 打赏
  • 举报
回复
谢谢,期待还有其它的方法
加载更多回复(5)

62,074

社区成员

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

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

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

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