У вас может быть функция класса abc, которая принимает параметр ретранслятора в качестве параметра и связывает данные с ним.
EDIT: Возможно, вы захотите переключить источник данных для разных ретрансляторов. В этом случае вы можете добавить еще один параметр в метод BindTable
и внутри этого метода проверить параметр, чтобы переключиться на правильный источник данных.
EDIT 2:BindTable
принимает два параметра, Repeater
и перечисление MyEnum
.
Вот как я это сделаю. У меня есть страница, Show.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Show.aspx.cs" Inherits="RepeaterTestOne.Show" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Repeater ID="rptDisplay" runat="server">
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Label ID="lblID" runat="server" Text='<%#Eval("ID") %>'></asp:Label>
</td><td>
<asp:Label ID="lblName" runat="server" Text='<%#Eval("Name") %>'></asp:Label>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<asp:Button ID="Button1" runat="server" Text="First One" OnClick="Button1_Click" />
<asp:Button ID="Button2" runat="server" Text="First Four" OnClick="Button2_Click" />
<asp:Button ID="Button3" runat="server" Text="All" OnClick="Button3_Click" />
</div>
</form>
</body>
</html>
В коде я звоню BindTable() метод моего класса данных (MyDataClass) и передачи повторителя. Мой Show.aspx.cs выглядит следующим образом:
using System;
namespace RepeaterTestOne
{
public partial class Show : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
MyDataClass.BindTable(rptDisplay, MyEnum.FirstOne);
}
protected void Button2_Click(object sender, EventArgs e)
{
MyDataClass.BindTable(rptDisplay,MyEnum.FirstFour);
}
protected void Button3_Click(object sender, EventArgs e)
{
MyDataClass.BindTable(rptDisplay, MyEnum.AllItems);
}
}
}
В моей MyDataClass У меня есть код (с фиктивным кодом для теста), как это:
using System.Collections.Generic;
using System.Web.UI.WebControls;
namespace RepeaterTestOne
{
public static class MyDataClass
{
public static void BindTable(Repeater rpt, MyEnum mySelection = MyEnum.AllItems)
{
//Replace this part with custom sql
List<MyData> lst = new List<MyData>()
{
new MyData{ID=1, Name="Item 1"},
new MyData{ID=2, Name="Item 2"},
new MyData{ID=3, Name="Item 3"},
new MyData{ID=4, Name="Item 4"},
new MyData{ID=5, Name="Item 5"}
};
switch (mySelection)
{
case MyEnum.FirstOne:
lst = new List<MyData>(){new MyData{ID=1, Name="Item 1"}};
break;
case MyEnum.FirstFour:
lst = new List<MyData>()
{
new MyData{ID=1, Name="Item 1"},
new MyData{ID=2, Name="Item 2"},
new MyData{ID=3, Name="Item 3"},
new MyData{ID=4, Name="Item 4"}
};
break;
default:
lst = new List<MyData>()
{
new MyData{ID=1, Name="Item 1"},
new MyData{ID=2, Name="Item 2"},
new MyData{ID=3, Name="Item 3"},
new MyData{ID=4, Name="Item 4"},
new MyData{ID=5, Name="Item 5"}
};
break;
}
//Replace this part with custom sql
rpt.DataSource = lst;
rpt.DataBind();
}
}
public class MyData
{
public int ID { get; set; }
public string Name { get; set; }
}
}
И вот мое перечисление MyEnum
:
namespace RepeaterTestOne
{
public enum MyEnum
{
AllItems = 1,
FirstOne = 2,
FirstFour = 3
}
}
Что вы подразумеваете под «моим классом данных, где находятся все мои методы привязки данных»? Какова цель «класса данных», доступа к данным или выполнения привязки данных для элементов управления? – Markus
Позвольте мне сделать это простым! Я хочу привязать ретранслятор ретранслятора из другого класса, скажем, «abc.cs». Причина для этого, я хочу сделать код чистым. Я просто хочу вызвать функцию в событии загрузки формы, и мой ретранслятор должен затухать данные. И эта функция написана в моем классе «abc.cs». Как это можно достичь? – askBittu
Почему вы не передаете ретранслятор методу в своем классе? – afzalulh