标签: asprepeater

在.NET中将索引放入转发器控件的最简单方法是什么?

我想要一个ASP:NET WebForms Repeater控件来自动将索引放在每个输出行的旁边.我怎样才能做到这一点?

例:

   Name
1  John
2  Jack
3  Joe
Run Code Online (Sandbox Code Playgroud)

c# asp.net repeater asprepeater

8
推荐指数
1
解决办法
2万
查看次数

维护转发器的视图状态

我有一个问题,即转发器的视图状态,即转发器内的控件不维护其视图状态.

我有以下内容:

中继器1:

<asp:Repeater ID="rptImages" runat="server">
<ItemTemplate>
    <asp:LinkButton Text="Add" CommandName="Add" CommandArgument=<%# Eval("ID") %> runat="server" />
</ItemTemplate>
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)

单击链接按钮时,CommandArgument的值将存储在页面上的隐藏字段中.

回发后,在加载prerender事件处理程序之前,我无法获取隐藏字段的值.所以在我的prerender事件中,我获取隐藏字段的值并将其存储在List属性中,如下所示:

if (!string.IsNullOrEmpty(this.SelectedImageIDsInput.Text)) {
        this.ImageList.Add(this.SelectedImageIDsInput.Text);
    }
Run Code Online (Sandbox Code Playgroud)

List属性如下所示:

public List<string> ImageList {
    get {
        if (this.ViewState["ImageList"] == null) {
            this.ViewState["ImageList"] = new List<string>();
        }
        return (List<string>)(this.ViewState["ImageList"]);
    }
    set { this.ViewState["ImageString"] = value; }
}
Run Code Online (Sandbox Code Playgroud)

一旦我将值存储到我的List属性中,我就绑定了我的第二个转发器(再次在prerender事件中):

this.rptSelectedImages.DataSource = this.LightBoxControl.ImageList;
this.rptSelectedImages.DataBind();
Run Code Online (Sandbox Code Playgroud)

第二个中继器有一个下拉列表和一个文本框.问题是不维护这些子控件的视图状态.我认为这是因为每次回发我重新绑定转发器,因此它被重建.我不知道的是我怎么可能绕过这个?ImageList属性仅在回发时更新,因此我显然必须使用每个回发重新绑定转发器 - 如何才能完成?

任何帮助将不胜感激.

谢谢Al

c# asp.net viewstate repeater asprepeater

7
推荐指数
1
解决办法
1万
查看次数

如何在转发器中使用不同的样式?

对于第一项我想使用以下内容<div>:

<div class="six columns">
  <a href="">
    <img src="" />
      <h3>Israeli Embassy Promotes Peace</h3>
      <h4>At a time when Israel is facing threats of...</h4>
  </a>
</div>
Run Code Online (Sandbox Code Playgroud)

这是休息我想使用以下<div>:

<div class="six columns">
    <ul>
         <li><a href="">
             <h3>This is the first alskdjlak s</h3>
             </a></li>
         <li><a href="">
             <h3>asd sad asd asd asdasdasdas d</h3>
             </a></li>
         <li><a href="">
             <h3>dsad asd asd asd asd asd asd</h3>
             </a></li>
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

asp.net asprepeater c#-4.0

5
推荐指数
1
解决办法
4504
查看次数

如何使用转发器的OnItemCommand触发文本框的事件,而不使用LinkBut​​ton?

我有一个带有文本框的转发器,当我从一个文本框移动到另一个文本框时,我想要发送一个事件,使用OnItemCommand转发器.

<asp:Repeater ID="RptrPeople" runat="server" OnItemDataBound="RptrPeople_ItemDataBound" OnItemCommand="RptrPeople_ItemCommand">
         <ItemTemplate>
                <asp:HiddenField ID="hf" runat="server" Value="<%# Eval(this.ValuedPerson) %>" />
                <asp:TextBox ID="txtDescription" runat="server" IsRequired="false" Visible="true" AutoPostBack="true"  />
         </ItemTemplate>
</asp:Repeater> 
Run Code Online (Sandbox Code Playgroud)

我试图使用OnTextChanged文本框,但我不能得到以这种方式触发事件的项目.

任何人都可以请告知一个很好的方式来获取触发事件的项目,之后我从一个文本框移动,使用OnItemCommand (例如,我进123Textbox #1,然后转移到Textbox #2...然后我想火,是以事件照顾123有价值的文本框)?

谢谢

c# asp.net repeater asprepeater visual-studio-2012

5
推荐指数
1
解决办法
1588
查看次数

ItemIndex asp的内联IF语句:Repeater VB.NET

我试图在一个asp:Repeater控件中做一个内联IF语句,为第一个项添加一个类,但我似乎无法弄明白.

基本上我现在的代码不起作用,但应该知道我正在"尝试"做什么看起来像这样.

   <asp:Repeater ID="rptrTabRepeater" runat="server">
       <ItemTemplate>
           <div class="tab <%= If Container.ItemIndex = 0 Then %>highlight<% End If%>">
               'Other stuff here
            </div>
       </ItemTemplate>
   </asp:Repeater>
Run Code Online (Sandbox Code Playgroud)

我已尝试使用该OnItemDataBound事件,但委托接口无法返回值.如果我要从代码隐藏函数中做任何事情,它真的只需要一个"回声"类函数,我不太确定如何在函数后面的代码中获取项索引.如果我可以像我的例子一样内联做一些对我来说最好的解决方案.

任何更好的解决方案也欢迎.谢谢!

编辑:我得到的编译错误是:

    Compiler Error Message: BC30201: Expression expected.
Run Code Online (Sandbox Code Playgroud)

vb.net asp.net inline asprepeater

3
推荐指数
1
解决办法
1万
查看次数

Repeater错误 - 服务器标签格式不正确

我正在使用转发器在我的页面上显示数据记录.它曾经是我在其中使用表格,我从来没有遇到过问题,但现在我正在使用div并且我一直在收到构建错误,说服务器标签格式不正确......

任何人都可以看到这个有什么问题?

<asp:Repeater runat="server" ID="rptGuestbook" 
    onitemdatabound="rptGuestbook_ItemDataBound">
    <ItemTemplate>
        <div runat="server" id="divPost" class="post">
            <div runat="server" id="divAuthor" class="author">
                <ul>
                    <li><asp:HyperLink runat="server" ID="lnkEmail" ImageUrl="~/Images/emailicon.png" NavigateUrl="mailto: <%# Eval("emailaddress") %>"></asp:HyperLink></li>
                    <li><asp:HyperLink runat="server" ID="lnkWeb" ImageUrl="~/Images/webicon.png" NavigateUrl="<%# Eval("webaddress") %>"></asp:HyperLink></li>
                    <li>Posted By: <%# Eval("author") %></li>
                </ul>               
                <div runat="server" id="divAdmin" class="delete-button" visible="false">
                    <asp:Button runat="server" ID="btnDeletePost" Text="Delete Post" OnClick="btnDeletePost_Click" />
                </div>
            </div>
            <div runat="server" id="divMessage" class="post-message"><%# Eval("message") %></div>
        </div>
    </ItemTemplate>
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)

asp.net asprepeater

3
推荐指数
1
解决办法
6601
查看次数

asp转发器按钮文本更改

美好的一天,我希望转发器内的按钮文本根据sql选择的值动态改变.

这是我的代码:

asp.cs

if (!IsPostBack) 
{
   string getEmp = "Select employeeid, photo, lastname, firstname, departmentname, designation,userType from tblEmployee e inner join tblDepartment d on d.departmentid=e.department";
   SqlCommand com = new SqlCommand(getEmp,con);
   con.Open();
   SqlDataReader dr = com.ExecuteReader();
   Button btnSet = (Button)FindControl("btnSet");
   if (dr.HasRows)
   {
      if (dr.Read())
      {
         if (btnSet != null)
         {
             if (dr["userType"].ToString() == "2")
             {
                btnSet.Text = "Set as Normal User";
             }
             else
             {
                btnSet.Text = "Set as Power User";
             }
         }
      } 
   }
   Repeater1.DataSource = dr;
   Repeater1.DataBind();
   dr.Dispose();
   con.Close(); …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asprepeater

3
推荐指数
2
解决办法
1705
查看次数

ASP:中继器不工作

我已经使用教程使用转发器在我的项目的页面上显示名称列表.

所以我正在使用动态数据,在我的aspx.cs页面中,我有:

List<string> subContractors = new List<string>();

Context db = new Context();
subContractors = (from SUBContractors in db.BOQ_SubContractors
                  where SUBContractors.Bill_Of_Quantity_id == this.boqId
                  select SUBContractors.Sub_Contractor.Company_Name).ToList();
Run Code Online (Sandbox Code Playgroud)

repeaterShowSubContractorName.DataSource = subContractors; repeaterShowSubContractorName.DataBind();

在我的aspx中:

<asp:Repeater ID="repeaterShowSubContractorName" runat="server" OnItemDataBound="subContractors_ItemDataBound">
  <HeaderTemplate>
    <table>
      <tr>
        <th>
          <asp:Label ID="SubConName" Text="SubContractor Name" runat="server"></asp:Label>
        </th>
      </tr>
    </table>
  </HeaderTemplate>
  <ItemTemplate>
    <tr>
      <td>
        <asp:Label ID="SubCon" Text='<%# Eval("subContractors") %>' runat="server"></asp:Label>
       </td>
     </tr>
   </ItemTemplate>
 </asp:Repeater>
Run Code Online (Sandbox Code Playgroud)

错误来自OnItemDataBound="subContractors_ItemDataBound".

我将这个链接到哪里或在哪里?我subContractors_ItemDataBound此刻没有.

asp.net asprepeater

2
推荐指数
1
解决办法
3194
查看次数

使用元组将多个项目添加到 asp 中继器

我在前端创建了一个转发器,我需要添加多个项目,第二个项目是一个字符串,这需要添加到图像 src 中,有什么想法吗?

<asp:Repeater runat="server" ID="WeatherForcastWeek" >
  <ItemTemplate>
     <td>
       <asp:Label runat="server" ID="Day1" />
       <asp:Image runat="server" ID="WeatherIcon" />
       <asp:Label runat="server" ID="Min" />
       <asp:Label runat="server" ID="Max" />
     </td>
  </ItemTemplate>
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)

下面是数据源类型

Tuple<string, string, double, double>
Run Code Online (Sandbox Code Playgroud)

c# asp.net tuples asprepeater

1
推荐指数
1
解决办法
776
查看次数