- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我不做 asp.net,但我正在做的项目是用它构建的,如果这是一个非常简单的问题,我很抱歉:
以下代码可以很好地提取结果,但如果可能的话,我想在每 3 个结果周围添加一个包装器
<asp:Repeater ID="rptPendingCourses" runat="server" OnItemDataBound="rptPendingCourses_ItemDataBound">
<ItemTemplate>
<div class="coursesContainer">
<div class="coursesContent as">
<p class="title"><a onclick="linkcourse('<%#DataBinder.Eval(Container.DataItem, "CourseID")%>');return false;" href="#" title='Launch <%# DataBinder.Eval(Container.DataItem, "CourseTitle")%>'><%# System.Web.HttpUtility.HtmlEncode((String)(DataBinder.Eval(Container.DataItem, "CourseTitle").ToString().Length > 25 ? DataBinder.Eval(Container.DataItem, "CourseTitle").ToString().Remove(22) + "..." : DataBinder.Eval(Container.DataItem, "CourseTitle")))%></a></p>
<ajax:Rating ID="courseRating" runat="server" Visible="false" MaxRating="5" ReadOnly="true"BackColor="Transparent"StarCssClass="ratingStar png" EmptyStarCssClass="emptyRatingStar png" WaitingStarCssClass="waitingRatingStar png" FilledStarCssClass="filledRatingStar png" />
<div class="clear"></div>
</div>
</div>
</ItemTemplate>
</asp:Repeater>
所以希望它包装每 3 个结果,所以会像
<div class="courseWrapper">
<div class="courseContainer">......</div>
<div class="courseContainer">......</div>
<div class="courseContainer">......</div>
</div>
<div class="courseWrapper">
<div class="courseContainer">......</div>
<div class="courseContainer">......</div>
<div class="courseContainer">......</div>
</div>
提前致谢
CS 代码:
/* Pending Courses */
rptPendingCourses.DataSource = pendingCourses();
rptPendingCourses.DataBind();
public DataSet pendingCourses()
{
DataSet dataSet = new DataSet();
User user = (User)Context.Items["CurrentUser"];
SqlConnection selectConnection = new SqlConnection(ConfigurationSettings.AppSettings["DBConnectStr"]);
SqlDataAdapter adapter = new SqlDataAdapter("dbo.procCataloguesGetAllCoursesByRating", selectConnection);
adapter.SelectCommand.CommandType = CommandType.StoredProcedure;
// get results
adapter.SelectCommand.Parameters.Add("@FilterByDomain", SqlDbType.Bit).Value = 0;
if (user.Domain.Guid != Guid.Empty) {
adapter.SelectCommand.Parameters.Add("@DomainID", SqlDbType.UniqueIdentifier).Value = user.Domain.Guid;
}
adapter.SelectCommand.Parameters.Add("@Culture", SqlDbType.VarChar, 6).Value = System.Threading.Thread.CurrentThread.CurrentCulture.Name;
adapter.SelectCommand.Parameters.Add("@IsEnabled", SqlDbType.Bit).Value = 1;
adapter.SelectCommand.Parameters.Add("@DomainAdminID", SqlDbType.UniqueIdentifier).Value = Guid.Empty;
try
{
dataSet = new DataSet();
adapter.Fill(dataSet);
}
catch (Exception exception)
{
dataSet.Dispose();
dataSet = null;
LMS_DB.LMS_DB.LogErrorEvent(exception.Message, AuditEntryType.CatalogueCoursesGetCourses);
}
finally
{
if (selectConnection.State == ConnectionState.Open)
{
selectConnection.Close();
}
}
return dataSet;
}
protected void rptPendingCourses_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
DataRowView dataItem = (DataRowView)e.Item.DataItem;
if (Convert.ToBoolean(dataItem.Row["RatingsEnabled"]))
{
Rating rating = (Rating)e.Item.FindControl("courseRating");
rating.Visible = true;
rating.CurrentRating = Convert.ToInt32(dataItem.Row["AverageRating"]);
}
}
最佳答案
如果您使用 ListView 控件来显示您的数据,您可以选择指定 <GroupTemplate>
连同 GroupItemCount 属性:
<asp:ListView
GroupItemCount="3"
ID="rptPendingCourses"
runat="server"
OnItemDataBound="rptPendingCourses_ItemDataBound">
<LayoutTemplate>
<div runat="server" ID="groupPlaceholder"></div>
</LayoutTemplate>
<GroupTemplate>
<div class="courseWrapper">
<asp:PlaceHolder runat="server" ID="itemPlaceHolder" />
</div>
</GroupTemplate>
<ItemTemplate>
<div class="coursesContainer">
<div class="coursesContent as">
<p class="title"><a onclick="linkcourse('<%#DataBinder.Eval(Container.DataItem, "CourseID")%>');return false;" href="#" title='Launch <%# DataBinder.Eval(Container.DataItem, "CourseTitle")%>'><%# System.Web.HttpUtility.HtmlEncode((String)(DataBinder.Eval(Container.DataItem, "CourseTitle").ToString().Length > 25 ? DataBinder.Eval(Container.DataItem, "CourseTitle").ToString().Remove(22) + "..." : DataBinder.Eval(Container.DataItem, "CourseTitle")))%></a></p>
<ajax:Rating ID="courseRating" runat="server" Visible="false" MaxRating="5" ReadOnly="true" BackColor="Transparent" StarCssClass="ratingStar png" EmptyStarCssClass="emptyRatingStar png" WaitingStarCssClass="waitingRatingStar png" FilledStarCssClass="filledRatingStar png" />
<div class="clear"></div>
</div>
</div>
</ItemTemplate>
</asp:ListView>
然后,对于 OnItemDataBound 事件,我认为您需要将其更改为:
protected void rptPendingCourses_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
ListViewDataItem listItem = (ListViewDataItem)e.Item;
DataRowView dataItem = (DataRowView)listItem.DataItem;
if (Convert.ToBoolean(dataItem.Row["RatingsEnabled"]))
{
Rating rating = (Rating)e.Item.FindControl("courseRating");
rating.Visible = true;
rating.CurrentRating = Convert.ToInt32(dataItem.Row["AverageRating"]);
}
}
}
关于c# - asp.net 每 3 个结果在转发器上包装一个 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22987697/
我想知道从 IMAP 帐户转发邮件的最快和最可靠的方法是什么。 我的大学不允许我们的学生邮箱转发到私有(private)电子邮件帐户(这里每个人都使用 Gmail 或 Hotmail)。这是一个政治问
我正在使用 .net 构建的网站 下面的代码 输出类似...的内容 Title Div contents Title Div con
我在访问 HTML 元素时遇到问题。在服务器端,这些元素存在于转发器控件的 itemTemplate 中。 简单代码:
下面是我用来重定向端口 8080 上的常规 HTTP 请求的简单脚本,它会立即根据源 IP 地址重定向(至少使它们成为)它们。 它有效(对于 HTTP),但是我希望对来自 443 端口的 HTTPS
我在HTML中初始化了一个中继器colorSetOne,然后,我想用另一个中继器colorSetTwo替换,该怎么做(它可以由事件触发)?这是 jsfiddle :http://jsfiddle.ne
我在前端创建了一个中继器,我需要添加多个项目,第二个项目是一个字符串,这需要添加到图像 src,有什么想法吗?
我想用 socat 创建一个端口转发器,以便通过单个 openssl channel 重定向多个分支连接。我可以在不使用任何 tun 或 vpn 的情况下在 socat 中执行此操作吗? 到目前为止,
我正在尝试创建一个包含表格的 HTML 模板。表中的每一行都应该代表我拥有的一个结构,并包含来自该结构的值。 我找到的唯一相关引用资料是:golang template - how to render
您好,感谢您阅读本文。 有什么方法可以让我的 Repeater 数据绑定(bind)以仅列出包含与我的 QueryString 中的单词/数字相等的内容的行? 这是我的 Nav Url 示例,其中包含
我在 JQuery Carousel 中使用 ASP Repeater,就像在 link 中一样.我在我的 .aspx 页面中添加了所有引用和链接,我的代码是: Movies
我想用中继器显示文件夹图像中的图片,但我不知道为什么无法显示问题图片。
我有一个字典列表,我是这样创建的: List> _list = new List>(); var q = from d in db.TT_DELIVERies
我正在使用 woocommerce-advanced-checkout-fields 插件并在计费部分添加了一个转发器字段,如下所示 如上图所示,中继器字段“姓名/电子邮件”适用于产品“腰带” 现在,
我有以下简单的 NodeJS 脚本,想稍微修改一下.... var sys = require( 'sys' ), net = require( 'net' ); var outputserver =
我的 aspx 中有一个转发器: 在网络的 C# 端我写了这个函数: protected void createRadioButtons(DataSet ds){ List butto
我在 stackoverflow 博客上的 OpenID 帖子中读到了这条评论。 Kibbee says : One nice feature of OpenID that I use is the
我有一个这样的中继器: " Text="" /> 我像这样将数据源绑定(bind)到转发器: Dim dbRooms As New pbu_
我这里有一个非常基本的 sitecore 问题。我想遍历一组子对象(位置),并显示有关每个子对象的一些信息。 我正在使用 ASP 转发器进行迭代,我正在加载页面上的 child ,我正在尝试使用 sc
我正在尝试使用来自 AngularJS 的数据填充 Bootstrap Carousel 组件。基本上我在 carousel-inner 类中填充项目是这样的:
我是 Node.js 的新手,但我想将它用作一个快速的 Web 服务器,它只需接收请求 uri,然后在返回 JSON 流的内部服务上运行查询。 即像这样: http.createServer(func
我是一名优秀的程序员,十分优秀!