2017-03-18 58 views
0

我正在使用usercontrol在页面左侧显示标签文本,而另一个用户控件显示内容页面,当内容页面上的字段文本发生变化时,我需要在左侧菜单usercontrol上的标签上更新相同的状态。当另一个用户控件中的标签文本发生更改时,更新另一个用户控件中控件的文本

我用:

ScriptManager.RegisterClientScriptBlock(this, this.GetType(),"ChangeLabelText", script, false) 

更改文本左侧的控制,与此得到执行,但标签仍显示即使在内容网页上的文字后,更新旧的文本相关联的JavaScript页面刷新。但是,它会在整个页面刷新时显示新的更新文本。

请提出解决此问题的方法。

+1

的[从一种形式发送值为另一种形式]可能的复制(http://stackoverflow.com/questions/1559770/send-values-from-one -form-to-another-form) –

+0

Mine是一个基于web的应用程序 – MukkuP

+0

也许你想添加一个[asp.net]标签或其他东西 –

回答

0

如果您在页面上有两个用户控件,并且希望从第一个控件的第二个控件的第二个控件中更新一个标签,则需要使用FindControl

//find the other control in the parent 
Control control = Parent.FindControl("WebUserControl2") as Control; 

//find the label in that control 
Label label = control.FindControl("Label1") as Label; 

//update the label 
label.Text = "Updated from another control"; 

更新

如果你想用JavaScript,你只需要确保您发送正确的ID更新。

ScriptManager.RegisterStartupScript(Page, GetType(), "changeLabel", "changeLabel('WebUserControl2_Label1', 'Updated with JS')", true); 

而javscript功能

<script type="text/javascript"> 
    function changeLabel(id, text) { 
     document.getElementById(id).innerHTML = text; 
    } 
</script> 
+0

这将工作,如果页面刷新,但在我的情况下,左侧UC不会刷新,我认为这需要通过javascript – MukkuP

+0

更新我的答案。 – VDWWD

+0

我已经采用了这种方法,但左侧控件的值仍旧保留旧的值,即在我从服务器获取新文本值之前JavaScript会被触发,我需要在获取新值后触发javascript,有什么建议吗? – MukkuP

相关问题