Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将强类型数据列表传递并循环到WebForm_C#_Asp.net 3.5 - Fatal编程技术网

C# 将强类型数据列表传递并循环到WebForm

C# 将强类型数据列表传递并循环到WebForm,c#,asp.net-3.5,C#,Asp.net 3.5,我来自MVC背景,在这里我可以从控制器传递模型数据列表,以便以结构化的方式查看更多内容。我现在需要了解如何将存储类型的模型数据从C#类传递到页面 我正在使用ASP.NET3.5 模范班 我已经设法在aspx.cs类中引入列表数据。。。如何在aspx页面中循环表单数据 Roles.aspx.cs类 受保护的无效页面加载(对象发送方,事件参数e) { List roleList=新列表(); roleList=RoleDefinitionRelay.GetAllRoles(null); } asp

我来自MVC背景,在这里我可以从控制器传递模型数据列表,以便以结构化的方式查看更多内容。我现在需要了解如何将存储类型的模型数据从C#类传递到页面

我正在使用ASP.NET3.5

模范班 我已经设法在aspx.cs类中引入列表数据。。。如何在aspx页面中循环表单数据

Roles.aspx.cs类
受保护的无效页面加载(对象发送方,事件参数e)
{
List roleList=新列表();
roleList=RoleDefinitionRelay.GetAllRoles(null);
}
aspx

角色ID
标题
描述
创建日期
???????????

以下是使用ASP:Repeater控件。希望这有帮助

在您的.aspx中

<form runat="server"> 
<asp:Repeater id="rptRoles" runat="server">
<HeaderTemplate>
<table border="1" width="100%">
<tr>
   <td>Role ID</td>
   <td>Title</td>
   <td>Description</td>
   <td>Created Date</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
    <td><%#Eval("RoleID")%></td>
    <td><%#Eval("Title")%></td>
    <td><%#Eval("Description")%></td>
    <td><%#Eval("CreatedDate")%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</form>

角色ID
标题
描述
创建日期
.aspx.cs

 protected void Page_Load(object sender, EventArgs e)
 {
    if(!Page.IsPostBack){
        List<RolesModel> roleList = new List<RolesModel>();
        roleList = RoleDefinationRelay.GetAllRoles(null);
        //set data source of repeater and bind
         rptRoles.DataSource = roleList;
         rptRoles.DataBind();
    }

 }
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(!Page.IsPostBack){
List roleList=新列表();
roleList=RoleDefinitionRelay.GetAllRoles(null);
//设置中继器的数据源并绑定
rptRoles.DataSource=roleList;
rptRoles.DataBind();
}
}

以下是使用ASP:Repeater控件。希望这有帮助

在您的.aspx中

<form runat="server"> 
<asp:Repeater id="rptRoles" runat="server">
<HeaderTemplate>
<table border="1" width="100%">
<tr>
   <td>Role ID</td>
   <td>Title</td>
   <td>Description</td>
   <td>Created Date</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
    <td><%#Eval("RoleID")%></td>
    <td><%#Eval("Title")%></td>
    <td><%#Eval("Description")%></td>
    <td><%#Eval("CreatedDate")%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</form>

角色ID
标题
描述
创建日期
.aspx.cs

 protected void Page_Load(object sender, EventArgs e)
 {
    if(!Page.IsPostBack){
        List<RolesModel> roleList = new List<RolesModel>();
        roleList = RoleDefinationRelay.GetAllRoles(null);
        //set data source of repeater and bind
         rptRoles.DataSource = roleList;
         rptRoles.DataBind();
    }

 }
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(!Page.IsPostBack){
List roleList=新列表();
roleList=RoleDefinitionRelay.GetAllRoles(null);
//设置中继器的数据源并绑定
rptRoles.DataSource=roleList;
rptRoles.DataBind();
}
}

以下是使用ASP:Repeater控件。希望这有帮助

在您的.aspx中

<form runat="server"> 
<asp:Repeater id="rptRoles" runat="server">
<HeaderTemplate>
<table border="1" width="100%">
<tr>
   <td>Role ID</td>
   <td>Title</td>
   <td>Description</td>
   <td>Created Date</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
    <td><%#Eval("RoleID")%></td>
    <td><%#Eval("Title")%></td>
    <td><%#Eval("Description")%></td>
    <td><%#Eval("CreatedDate")%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</form>

角色ID
标题
描述
创建日期
.aspx.cs

 protected void Page_Load(object sender, EventArgs e)
 {
    if(!Page.IsPostBack){
        List<RolesModel> roleList = new List<RolesModel>();
        roleList = RoleDefinationRelay.GetAllRoles(null);
        //set data source of repeater and bind
         rptRoles.DataSource = roleList;
         rptRoles.DataBind();
    }

 }
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(!Page.IsPostBack){
List roleList=新列表();
roleList=RoleDefinitionRelay.GetAllRoles(null);
//设置中继器的数据源并绑定
rptRoles.DataSource=roleList;
rptRoles.DataBind();
}
}

以下是使用ASP:Repeater控件。希望这有帮助

在您的.aspx中

<form runat="server"> 
<asp:Repeater id="rptRoles" runat="server">
<HeaderTemplate>
<table border="1" width="100%">
<tr>
   <td>Role ID</td>
   <td>Title</td>
   <td>Description</td>
   <td>Created Date</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
    <td><%#Eval("RoleID")%></td>
    <td><%#Eval("Title")%></td>
    <td><%#Eval("Description")%></td>
    <td><%#Eval("CreatedDate")%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</form>

角色ID
标题
描述
创建日期
.aspx.cs

 protected void Page_Load(object sender, EventArgs e)
 {
    if(!Page.IsPostBack){
        List<RolesModel> roleList = new List<RolesModel>();
        roleList = RoleDefinationRelay.GetAllRoles(null);
        //set data source of repeater and bind
         rptRoles.DataSource = roleList;
         rptRoles.DataBind();
    }

 }
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(!Page.IsPostBack){
List roleList=新列表();
roleList=RoleDefinitionRelay.GetAllRoles(null);
//设置中继器的数据源并绑定
rptRoles.DataSource=roleList;
rptRoles.DataBind();
}
}

问题在于,您是从MVC的角度来考虑这个问题的——我的问题正好相反,因为我的背景是webforms

在webforms中,您不会以这种方式绑定数据(您可以,但这需要更多的工作,而且这并不是公认的方式)

您需要的是在您的aspx中有一个服务器控件,它将为您处理循环和渲染-在本例中,我将使用gridview,因为它很快,但是如果您需要对HTML进行更多控制,则应使用repeater或listview

你的代码就快到了

protected void Page_Load(object sender, EventArgs e)
{
    List<RolesModel> roleList = new List<RolesModel>();

    roleList = RoleDefinationRelay.GetAllRoles(null);

    //Bind the gridview
    gvRoles.DataSource = roleList;
    gvRoles.DataBind();
}
受保护的无效页面加载(对象发送方,事件参数e)
{
List roleList=新列表();
roleList=RoleDefinitionRelay.GetAllRoles(null);
//绑定gridview
gvRoles.DataSource=roleList;
gvRoles.DataBind();
}
然后在您的aspx页面中: 这里发生的事情是在页面加载中,您正在获取数据,将其分配给服务器控件(设置数据源),并告诉控件呈现它(数据绑定)

处理页面时,您的代码将启动,获取角色列表,这些角色列表将传递给gridview,gridview知道它将为列表中的每个项目生成一个表,为每个项目的每个属性生成一行

正如我上面所说的,如果您需要对它输出的HTML进行更多的控制,请查看repeater和ListView控件


希望有帮助

问题是,你是从MVC的角度来考虑这个问题的——我的问题正好相反,因为我有webforms的背景

在webforms中,您不会以这种方式绑定数据(您可以,但这需要更多的工作,而且这并不是公认的方式)

您需要的是在您的aspx中有一个服务器控件,它将为您处理循环和渲染-在本例中,我将使用gridview,因为它很快,但是如果您需要对HTML进行更多控制,则应使用repeater或listview

你的代码就快到了

protected void Page_Load(object sender, EventArgs e)
{
    List<RolesModel> roleList = new List<RolesModel>();

    roleList = RoleDefinationRelay.GetAllRoles(null);

    //Bind the gridview
    gvRoles.DataSource = roleList;
    gvRoles.DataBind();
}
受保护的无效页面加载(对象发送方,事件参数e)
{
List roleList=新列表();
roleList=RoleDefinitionRelay.GetAllRoles(null);
//绑定gridview
gvRoles.DataSource=roleList;
gvRoles.DataBind();
}
然后在您的aspx页面中: 这里发生的事情是在页面加载中,您正在获取数据,将其分配给服务器控件(设置数据源),并告诉控件呈现它(数据绑定)

处理页面时,您的代码将启动,获取角色列表,这些角色列表将传递给gridview,gridview知道它将为列表中的每个项生成一行,为每个属性生成一列