repeater 相关问题

Repeater控件用于显示绑定到控件的重复项列表。

如何在中继器外检查中继器内的开关?

我不是开发人员,我才刚刚开始(20天)所以我不明白一切,我可能会犯很多错误 我正在尝试为 KDE Plasma 6 创建一个具有

回答 1 投票 0

vb.net 中具有可变列/行的嵌套转发器

我想在选定的时间间隔中显示一种人员列表和一些与该月的某一天链接的信息,如下所示: 雇员。 | 01 | 02 | 03 | 阿尔伯特|啊啊| bbb | ccc | 达纳...

回答 1 投票 0

中继器数据绑定问题:更改活动周时,动态周日历不会在回发时更新

我在页面加载期间遇到了转发器数据绑定问题。我正在尝试创建一个每周日历,其中中继器显示日期,并且对于每一天,都会显示一个嵌套的中继器

回答 1 投票 0

ACF 中继器手风琴与 Bootstrap 5

我尝试使用 ACF 中继器字段来使用 Bootstrap 5 和简单的问答字段构建 FAQ 手风琴。我正在打印结果,但手风琴扩展器打开...

回答 2 投票 0

由中继器生成的 ASP.NET DropDownList 在创建后未触发 OnSelectedIndexChanged

我正在处理一个棘手的错误。我在 .aspx 文件中使用 Repeater 创建了一个 ASP DropDownList: 我的页面.aspx 我正在处理一个棘手的错误。我在 .aspx 文件中使用 Repeater 创建了一个 ASP DropDownList: 我的页面.aspx <asp:Repeater ID="rptTemplateFields" runat="server" DataSource='<%# rptrDataSource %>' OnItemDataBound="rptTemplateFields_OnItemDataBound"> <ItemTemplate> <asp:DropDownList ID="ddlRepeater" runat="server" AppendDataBoundItems="true" AutoPostBack="True" OnSelectedIndexChanged="ddlRepeater_SelectedIndexChanged" width="360" Visible="False"> <asp:ListItem Text="" Value="" /> </asp:DropDownList> </ItemTemplate> </asp:Repeater> 我在代码隐藏中使用以下内容填充这些下拉菜单: mypage.aspx.cs protected void rptTemplateFields_OnItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { dynamic field = e.Item.DataItem; BugFieldName fieldName = field?.FieldName; string fieldContent = field?.FieldContent; var allowedValues = GenerateAllowedValues(fieldName); if (!fieldName.IsNullOrUnsetValue() && !allowedValues.IsNullOrEmpty()) { var ddl = e.Item.FindControl("ddlRepeater") as DropDownList; ddl.ID = "_ddlField" + fieldName; ddl.Attributes.Add("Name", "_ddlField" + fieldName); ddl.ClientIDMode = ClientIDMode.Static; ddl.DataSource = allowedValues; ddl.SelectedValue = allowedValues.Contains(fieldContent) ? fieldContent : null; ddl.Visible = true; ddl.DataBind(); } } } protected void ddlRepeater_SelectedIndexChanged(object sender, EventArgs e) { var ddlRepeater = sender as DropDownList; var state = (string)ViewState[ddlRepeater.Attributes["Name"]]; if (state != ddlRepeater.SelectedItem.Text) { ViewState[ddlRepeater.Attributes["Name"]] = ddlRepeater.SelectedItem.Text; } } 问题是我第一次单击下拉列表并更改项目(立即创建和数据绑定后),触发页面加载并擦除 ddl.SelectedValue 等状态,并且 DropDownList 的“OnSelectedIndexChanged”事件处理程序执行不火。 在此页面加载之后,DropDownList DO 中的后续更改会立即触发 OnSelectedIndexChanged 并保留列表的状态。我想象回发和数据绑定发生了一些奇怪的事情,但我不确定我哪里出了问题。 到目前为止,我已经尝试使用其他事件处理程序,但没有任何运气。我已经确认确实发生了页面加载并且它是回发。我将 <%@ Page ViewStateMode="Enabled" %> 添加到我的 aspx 文件中。我还尝试在中继器上使用 ItemCommand 监听器。这也没有火。 好的,这个问题看起来是您在标记中设置了中继器的数据源。因此,对于任何回发,您的重新加载和重新绑定代码都会再次运行,这会导致您所做的任何选择丢失(重新绑定会一次又一次地重新运行行数据绑定代码)。因此,您所做的任何更改都会因回发而丢失。 简单的解决方案是将数据绑定到后面代码中的中继器,并且仅一次。 因此,说出这个简单的标记: <div style="float: left; width: 30%"> <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound"> <ItemTemplate> <h4>Booking Infomration</h4> <asp:Label ID="lblPerson" runat="server" Width="200px" Text='<%# Eval("FirstName") + " " + Eval("LastName") %>'> </asp:Label> <asp:Label ID="Label1" runat="server" Text="Hotel:" Style="margin-left: 30px"> </asp:Label> <asp:DropDownList ID="cboHotel" runat="server" DataValueField="ID" DataTextField="HotelName" AutoPostBack="true" OnSelectedIndexChanged="cboHotel_SelectedIndexChanged"> </asp:DropDownList> <br /> <hr style="height: 2px; border: none; background-color: black" /> </ItemTemplate> </asp:Repeater> </div> <div style="float: left; margin-left: 30px"> <h3>Combo box selected row information</h3> <asp:TextBox ID="txtInfo" runat="server" TextMode="MultiLine" Height="160px" Width="350px"></asp:TextBox> </div> 我们的代码在后面,请注意我们如何确保仅在第一页加载时绑定数据(IsPostBack = false)。 因此这段代码: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) LoadData(); } void LoadData() { string strSQL = @"SELECT ID, HotelName FROM tblHotels ORDER BY HotelName"; rstHotels = General.MyRst(strSQL); strSQL = "SELECT * FROM People ORDER BY FirstName"; Repeater1.DataSource = General.MyRst(strSQL); Repeater1.DataBind(); } protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { DropDownList cboHotel = (DropDownList)e.Item.FindControl("cboHotel"); cboHotel.DataSource = rstHotels; cboHotel.DataBind(); cboHotel.Items.Insert(0, new ListItem("Please select", "0")); DataRowView rowData = (DataRowView)e.Item.DataItem; // current binding row data if (rowData["Hotel_id"] != DBNull.Value) cboHotel.SelectedValue = rowData["Hotel_id"].ToString(); } } protected void cboHotel_SelectedIndexChanged(object sender, EventArgs e) { DropDownList cboHotel = (DropDownList)sender; RepeaterItem rptRow = (RepeaterItem)cboHotel.NamingContainer; string sInfo = ""; sInfo += $"Row index selected = {rptRow.ItemIndex}\n"; Label lblPerson = (Label)rptRow.FindControl("lblPerson"); sInfo += $"Row person information = {lblPerson.Text}\n"; sInfo += $"combo Hotel id = {cboHotel.SelectedItem.Value}\n"; sInfo += $"combo Hotel Name (text) = {cboHotel.SelectedItem.Text}\n"; txtInfo.Text = sInfo; } 现在的结果是这样的: 因此,通常可以在标记中放置一些数据源,但是一旦您有了回发和附加代码逻辑,那么我建议您通过使用后面的代码来“控制”数据绑定,而不是离开重新绑定可能会或可能不会再次发生。

回答 1 投票 0

使用 Javascript 数组模型的 Repeater 在 Qt 5.12 中造成性能问题

我正在使用: Qt 5.12 在我的目标设备上构建的 IMX 587 处理器。 我面临一些性能问题,因为转发器使用 JavaScript 数组模型,那么每当任何项目发生变化时,...

回答 1 投票 0

Repeater Delegate 无法访问列表模型中的属性

从此链接描述了中继器问题。 @Stephen Quan,根据您的建议将代码修改为 ListModel。 列表模型{ id:列表模型 } 函数handleModelChanged() { 委托模型....

回答 1 投票 0

Repeater 使用 Javascript 数组模型在 Qt 5.12 中造成性能问题

我的项目代码使用了 Qt 版本 5.12 和在我的目标设备上构建的 IMX 587 处理器。在这里,我面临一些性能问题,因为中继器使用 javascript 数组模型,然后每当有任何

回答 1 投票 0

复制项目时中继器模型非常慢

我们的项目面临性能问题。我们正在使用 Qt/QML 和 C++ 后端,并且正在开发网格按钮。如果我们要更改或更新数据模型,中继器部分将...

回答 1 投票 0

无法将 JBL Flip 6 连接至音频中继器

我尝试通过音频中继器同时连接两个 JBL Flip 6 设备,但无法连接。我已经尝试通过更改选项多次进行连接,但仍然无法...

回答 1 投票 0

中继器字段组

我正在尝试将一组转发器字段添加到 WordPress 插件的设置页面。如果我只有一个中继器字段,则此代码有效,但如果同一组中有多个中继器字段,则它

回答 2 投票 0

向filament v2中继器项目添加确认删除模式

我有一个工作正常的 FilamentPHP v2 中继器。我正在尝试添加一个“确认删除”模式,用户必须在删除操作继续之前接受该模式,这是一个非常正常的用例。 没有...

回答 1 投票 0

向灯丝中继器项目添加确认删除模式

我有一个工作正常的 FilamentPHP 中继器。我正在尝试添加一个“确认删除”模式,用户必须在删除操作继续之前接受该模式,这是一个非常正常的用例。 没看到...

回答 1 投票 0

在转发器页脚中查找控件对文本框返回 null

我有两个嵌套的中继器。在嵌套的页脚中,我有文本框和文件上传控件。我能够毫无问题地获得文件上传的实例,但是文本的实例......

回答 2 投票 0

使用 javascript 的 Asp.Net 转发器控件

我使用中继器控件创建了常见问题解答页面,问题和答案从代码隐藏中绑定到运行时,如下所示。 ASPX代码 我使用中继器控件创建了常见问题解答页面,问题和答案从代码隐藏中绑定到运行时,如下所示。 ASPX 代码 <asp:Repeater ID="RepDetails" runat="server"> <ItemTemplate> <table id="tblRepeater"> <tr id="QARow" runat="server"> <td> <div id="QuestionDiv" onclick="return show(this, 'AnswerDiv');"> Q:<asp:label id="lblQuestion" runat="server" Text='<%# Eval("Question")%>' CssClass="lblQueClass"></asp:label> </div> <div id="AnswerDiv" style="display:none;"> Ans:<asp:Label id="lblAnswerClass" runat="server" Text='<%# Eval("Answer")%>' CssClass="lblAnswerClass"></asp:Label> </div> </td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> 效果很好!问题是我使用了以下脚本来打开和关闭答案。 <script type="text/javascript"> function show(QuestionDiv, AnswerDiv) { var arrDIVs = QuestionDiv.parentNode.getElementsByTagName("Div"); for (var i = 0; i < arrDIVs.length; i++) { var oCurDiv = arrDIVs[i]; if (oCurDiv.id.indexOf(AnswerDiv) >= 0) { var blnHidden = (oCurDiv.style.display == "none"); oCurDiv.style.display = (blnHidden) ? "block" : "none"; } } return false; } </script> 它的工作原理就像,当单击“一个问题”时,它会显示该问题的答案。 我的问题是:我想更新脚本,以便当我们单击一个特定问题时,它应该显示该问题的答案,也应该隐藏其他问题的答案。(例如 http://www.edubrainschool .com/faq.php). 最好的方法是绑定该 TR 的点击。您可以通过将 css 应用到 TR 来完成此操作。 <asp:Repeater ID="RepDetails" runat="server"> <ItemTemplate> <table id="tblRepeater"> <tr id="QARow" runat="server" class="TROpenCSS"> <td> <div id="QuestionDiv" class="QuestionCSS" onclick="return show(this, 'AnswerDiv');"> Q:<asp:label id="lblQuestion" runat="server" Text='<%# Eval("Question")%>' CssClass="lblQueClass"></asp:label> </div> <div id="AnswerDiv" class="AnswerCss" style="display:none;"> Ans:<asp:Label id="lblAnswerClass" runat="server" Text='<%# Eval("Answer")%>' CssClass="lblAnswerClass"></asp:Label> </div> </td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> 以及绑定那些CSS的点击事件 $('.TROpenCSS').bind('click',function(){ // Do your code to show the TD }); 为所有点击/鼠标悬停添加其他绑定 或者您可以使用“ddaccordion.js”或参考以下链接

回答 1 投票 0

中继器上的动态日增量-filamentphp

我想增加每个新中继器的天数。第一天、第二天... Repeater::make('行程') ->关系() ->架构([ ...

回答 1 投票 0

QML Repeater 删除所有委托项并在模型更改时重新生成它们

通过更改模型(添加或减去或编辑模型的成员),转发器删除所有创建的项目(委托)并再次重建它们。对于重型模型,这是一个大问题...

回答 0 投票 0

中继器控件不显示来自数据库调用的数据

我有一个转发器控件正在加载一些数据,但我没有获取 ItemTemplate 的数据。我已经验证从数据库返回的内容在 src[0][0] 中,但它没有显示出来。 ...

回答 1 投票 0

Elementor REPEATER Control with GALLERY Control inside, output undefined and foreach() warnings

我目前正在开发一个 elementor 小部件,但遇到以下问题: 我想在 REPEATER 控件中有一个 GALLERY 控件,如下图所示: 我的小部件 这是我的代码...

回答 0 投票 0

为什么我不能在 asp.net 中注释掉更新面板?

我制作了一个空白页面并添加了以下内容以生成正确运行的页面: 我制作了一个空白页面并添加了以下内容以生成正确运行的页面: <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> </asp:UpdatePanel> 然后我将其更改为以下内容: <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <!--<asp:UpdatePanel ID="UpdatePanel1" runat="server">--> <!--</asp:UpdatePanel>--> 为什么这会导致一个错误,说我不能在更新面板中有一个“-->”文字!? 谢谢! 这是错误的: <!--<asp:UpdatePanel ID="UpdatePanel1" runat="server">--> <!--</asp:UpdatePanel>--> 这是正确的: <%--<asp:UpdatePanel ID="UpdatePanel1" runat="server"> </asp:UpdatePanel>--%> 编辑: 如 https://weblogs.asp.net/scottgu/Tip_2F00_Trick_3A00_-Using-Server-Side-Comments-with-ASP.NET-2.0- 中所述 — ASP.NET 支持一个鲜为人知的功能,称为“服务器端注释”,您可以使用它来完全禁用代码/控件/html 页面。 ASP.NET 中的服务器端注释使用 <%-- --%> 分隔 关键区别在于,对于客户端评论,浏览器会忽略其中的内容。代码/控件 在客户端评论中仍然会在服务器上执行并且 发送到浏览器。因此,如果导致服务器错误 在其中它将阻止运行页面。 <!-- 之类的客户端注释不会影响服务器端控件解析。因此,当您的页面被解析时,解析器仍在处理 UpdatePanel,解析器看起来像这样: <asp:UpdatePanel ID="UpdatePanel1" runat="server">--> <!--</asp:UpdatePanel> 而且解析器不理解如何处理标签之间的内部内容。您需要使用服务器端注释,然后解析器将忽略该面板。 <%--<asp:UpdatePanel ID="UpdatePanel1" runat="server"> </asp:UpdatePanel>--%>

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.