[ASP.NET]Пристап до некоја корисничка контрола (user control) преку друга корисничка контрола
Страна 1 of 1
[ASP.NET]Пристап до некоја корисничка контрола (user control) преку друга корисничка контрола
Примеров се состои до пристап до вредност од DropDown листа од една корисничка контрола, преку друга корисничка контрола. Уствари преку примеров е да се види како комуницираат корисничките контроли.
Чекор 1: Креираме нов веб сајт. Десен клик на проектот -> Add New Item -> Web User Control. Дајте и некое име било какво на корисничката контрола, еве во нашиов пример ќе и дадеме име "ControlA". Исто креирајте и втора коричничка контрола и дајте и име "ControlB".
Чекор 2: Следува креирање на DropDown листата (со id="ddlItems") во "ControlB" корисничката контрола и пристап до селектрираната вредност од dropdown листата во "ControlA" корисничката контрола.
За да го направиме тоа влечиме (drag and drop) DropDownList контрола во корисничката контрола ControlB и и додаваме некои ставки (items). Кодот би излгедал вака:
Во CodeBehind го додаваме следново својство на DropDown листата (C# e кодот):
Чекор 3: Наредно, влечиме TextBox (id = "txtDDLValue" ) и Button (btnDDLValue) контрола во втората корисничка контрола "ControlA".
Друго доста важно е тоа што треба да додадеме референца од корисничката контрола "ControlB" во корисничката контрола "ControlA". Бидејќи корисничките контроли се компајлираат во асембли, додавање на референца овозможува "ControlA" да има пристап до методите и својствата од "ControlB". Кодот би изгледал вака:
Во CodeBehind имаме:
Се додека ја имаме референцирано "ControlB" во "ControlA" можеме да ги пронајдеме контролите и да имаме пристап до DropDown листата.
Чекор 4: Се што ни остана да направиме е да ги додаме овие две контроли на страната (Default.aspx). За да го направиме тоа, едноставно ги влечиме (drag and drop) во design mode при што во позадина се формираат регистерски директиви кон контролите. Кодот би изгледал вака:
Стартувајте ја апликацијата. Променете ја вредноста на DropDown листата во корисничката контрола ControlB. Потоа притиснете на копчето во корисничката контрола ControlA и селектираната вредност од DropDown листата ќе се прикаже во TextBox-от.
:cao: :cao: :cao:
Чекор 1: Креираме нов веб сајт. Десен клик на проектот -> Add New Item -> Web User Control. Дајте и некое име било какво на корисничката контрола, еве во нашиов пример ќе и дадеме име "ControlA". Исто креирајте и втора коричничка контрола и дајте и име "ControlB".
Чекор 2: Следува креирање на DropDown листата (со id="ddlItems") во "ControlB" корисничката контрола и пристап до селектрираната вредност од dropdown листата во "ControlA" корисничката контрола.
За да го направиме тоа влечиме (drag and drop) DropDownList контрола во корисничката контрола ControlB и и додаваме некои ставки (items). Кодот би излгедал вака:
- Код:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ControlB.ascx.cs" Inherits="ControlB" %>
<asp:DropDownList ID="ddlItems" runat="server">
<asp:ListItem>Item A</asp:ListItem>
<asp:ListItem>Item B</asp:ListItem>
<asp:ListItem>Item C</asp:ListItem>
</asp:DropDownList>
Во CodeBehind го додаваме следново својство на DropDown листата (C# e кодот):
- Код:
public partial class ControlB : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
public DropDownList ControlB_DDL
{
get
{
return this.ddlItems;
}
}
}
Чекор 3: Наредно, влечиме TextBox (id = "txtDDLValue" ) и Button (btnDDLValue) контрола во втората корисничка контрола "ControlA".
Друго доста важно е тоа што треба да додадеме референца од корисничката контрола "ControlB" во корисничката контрола "ControlA". Бидејќи корисничките контроли се компајлираат во асембли, додавање на референца овозможува "ControlA" да има пристап до методите и својствата од "ControlB". Кодот би изгледал вака:
- Код:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ControlA.ascx.cs" Inherits="ControlA" %>
<%@ Reference VirtualPath="~/ControlB.ascx" %>
<asp:TextBox ID="txtDDLValue" runat="server"></asp:TextBox>
<br />
<br />
<asp:Button ID="btnDDLValue" runat="server" OnClick="btnDDLValue_Click" Text="Get DropDown Value" />
Во CodeBehind имаме:
- Код:
protected void btnDDLValue_Click(object sender, EventArgs e)
{
ControlB ctrlB = (ControlB)Page.FindControl("cB");
//cB e id na ControlB
DropDownList ddl = ctrlB.ControlB_DDL;
txtDDLValue.Text = ddl.SelectedValue;
}
Се додека ја имаме референцирано "ControlB" во "ControlA" можеме да ги пронајдеме контролите и да имаме пристап до DropDown листата.
Чекор 4: Се што ни остана да направиме е да ги додаме овие две контроли на страната (Default.aspx). За да го направиме тоа, едноставно ги влечиме (drag and drop) во design mode при што во позадина се формираат регистерски директиви кон контролите. Кодот би изгледал вака:
- Код:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Src="ControlB.ascx" TagName="ControlB" TagPrefix="uc1" %>
<%@ Register Src="ControlA.ascx" TagName="ControlA" TagPrefix="uc2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<uc1:ControlB ID="cB" runat="server" />
<br />
<br />
<uc2:ControlA ID="cB" runat="server" />
</div>
</form>
</body>
</html>
Стартувајте ја апликацијата. Променете ја вредноста на DropDown листата во корисничката контрола ControlB. Потоа притиснете на копчето во корисничката контрола ControlA и селектираната вредност од DropDown листата ќе се прикаже во TextBox-от.
:cao: :cao: :cao:
Страна 1 of 1
Permissions in this forum:
Не можете да одговарате на темите во форумот