我在我的web應用程序中使用了兩個用戶控件。我想通過另一個用戶控件從用戶控件讀取標籤文本。我怎麼讀它?如何在另一個使用控件中讀取一個用戶控件標籤文本?
回答
使用這樣的...
創建用戶控件一個公共財產,並使用您希望該值的用戶控件名調用屬性....
我的賬戶被封鎖在這個網站上。現在我無法提出問題。 你能告訴我我該怎麼做才能提問? – Neeraj 2012-05-03 07:04:27
在MSDN上查看this article。
簡而言之,如果您知道該ID,則可以訪問其他控件。
你應該重構你的代碼,而不是依靠另一個UI控件上的某個標籤的內容。以與在該用戶控件中執行操作相同的方式獲取該值,或者在另一個類中提取該功能以避免代碼重複,並從兩個位置調用該值。
但是,如果您不想堅持使用這個現有的代碼,您應該創建接口並捕獲您不會從外部代碼調用的所有UserControls功能(在您的情況下:返回標籤文本)。然後在用戶控件中實現那個必須從外部調用的接口,之後是查找控件實例,可以通過枚舉所有Page子控件來實現。下面是按名稱在控制樹找到用戶控制界面簡單的示例代碼,它定義了控制必須返回一些標籤文字和類:
public interface IUserControl
{
string LabelText();
}
public class PageUserControls
{
private Page parentPage;
public PageUserControls(Page myParentPage)
{
this.parentPage = myParentPage;
}
private IEnumerable<Control> EnumerateControlsRecursive(Control parent)
{
foreach (Control child in parent.Controls)
{
yield return child;
foreach (Control descendant in EnumerateControlsRecursive(child))
yield return descendant;
}
}
public IUserControl GetControl(string controlName)
{
foreach (Control cnt in EnumerateControlsRecursive(this.parentPage))
{
if (cnt is IUserControl && (cnt as UserControl).AppRelativeVirtualPath.Contains(controlName))
return cnt as IUserControl;
}
return null;
}
}
,那麼你必須實現在保持用戶控件界面該標籤:
public partial class WebUserControl1 : System.Web.UI.UserControl, IUserControl
{
public string LabelText()
{
return Label1.Text;
}
}
最後用它從另一個用戶控制:
PageUserControls puc = new PageUserControls(this.Page);
string txt1 = puc.GetControl("WebUserControl1.ascx").LabelText();
BTW。方法EnumerateControlsRecursive是從SO回答到Finding all controls in an ASP.NET Panel?
我的賬戶被封鎖在這個網站上。現在我無法提出問題。你能告訴我我該怎麼提問? – Neeraj 2012-05-03 07:05:24
- 1. 從另一個用戶控件設置一個用戶控件的文本框
- 2. 當另一個用戶控件中的標籤文本發生更改時,更新另一個用戶控件中控件的文本
- 3. 如何在另一個用戶控件中使用asp.net用戶控件?
- 4. 在另一個用戶控件中移動用戶控件
- 5. 如何使用c#訪問一個用戶控件到另一個控件?
- 6. 從另一個用戶控件引用用戶控件
- 7. 啓動用戶控制在一個標籤控件動態
- 8. 在另一個控件中禁用一個控件的按鈕
- 9. WPF用戶控件另一個用戶控件
- 10. ASP.NET從另一個用戶控件刷新用戶控件
- 11. 用戶控件從另一個用戶控件繼承
- 12. 在另一個用戶控件的用戶控件中引發事件
- 13. 在asp.net中使用另一個用戶控件中的一個用戶控件的問題C#
- 14. 如何從另一個用戶控件調用用戶控件的方法?
- 15. 如何在Qt中將另一個控件放在另一個控件上
- 16. Web用戶控件在另一個用戶控件上調用事件
- 17. 獲取一個ASP.net用戶控件標籤之間的值
- 18. 如何從另一個用戶控件調用一個用戶控件中寫入的函數?
- 19. 如何從另一個Windows用戶控件顯示Windows用戶控件?
- 20. c#在另一個用戶控件中插入數據後刷新另一個用戶控件的datagridview
- 21. 一個用戶控件在AJAX回發期間更新另一個控件?
- 22. 如何在用戶控件中設置標籤的文本
- 23. 如何訪問用戶控件文本框在另一類
- 24. 如何將一個控件綁定到另一個控件?
- 25. 如何將控件/光標移動到另一個文本框
- 26. 一個WPF用戶控件
- 27. 在輸入時將文本從一個控件複製到另一個控件?
- 28. 從另一個控件訪問用戶控件
- 29. 根據另一個用戶控件中的操作將焦點設置在一個用戶控件中
- 30. 在另一個用戶控件與ASP.NET MVC註冊的用戶控件2
我的帳戶被封鎖在這個網站上。現在我無法提出問題。你能告訴我我該怎麼提問? – Neeraj 2012-05-03 07:08:52