我有一个Web表单,我有一个Label和一个用户控件。 我希望用户控件能够更改Label中文本的值。
如何向用户控制指示要更改的标签? (在示例中,我有一个标签,一个用户控件的单个实例,但我需要有几个)
编辑:用户与用户控件的交互会触发外部标签的更新。
EDIT2:添加更多细节。 我的用户控件有一个gridview,当用户向网格添加或编辑一行时,我想用网格列上的和来更新标签中的值。 目前我正在使用代码服务器端,因为更新或插入的请求将转到服务器。 如果可能的话,我更喜欢在客户端进行更新,因为这样我就可以更新我的标签而无需重新加载整个页面。
解决方案:更改为使用devexpress组件,我在用户对象中使用aspxgridview客户端事件EndCallback。我在我的用户对象中定义了一个属性来存储要在EndCallback回调中调用的javascript函数。 此属性可以由容器页面填充,因为我知道我需要的所有ID。
我的代码是:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<uc1:InvoiceItems runat="server" ID="InvoiceItems" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
</html>
答案 0 :(得分:0)
如果您知道要控制哪个标签,则可以在用户控件中始终拥有一些属性,从而保留该标签ID。
答案 1 :(得分:0)
您可以在控件中使用通用方法来设置标签的值,并将该标签控件传递给该函数。
该函数只是传递了Label.Text =“我的文字”
答案 2 :(得分:0)
我通过在客户端进行更改来解决这个问题。 我在我的用户对象中做了:
public String ClientCallback { get; set; }
private void Page_Init(object sender, EventArgs e)
{
GridView.ClientSideEvents.EndCallback = ClientCallback;
}
在我的页面上:
<dr:UserObject runat="server" ID="UserObject1"
ClientCallback="UpdateFeesTotal" />
函数UpdateFeesTotal是一个更新标签的javascript函数,现在还使用ASPxLabel来使用客户端功能。