2013-05-07 3 views
1

Просто хочу спросить, как я могу найти скрытое поле в ретрансляторе, потому что у моей проблемы есть кнопка, и я хочу получить связанное скрытое поле внутри ItemTemplate, потому что получаю нулевое значение, когда пытаюсь получить значение скрытого поляКак получить значение скрытого поля в ItemTemplate

<asp:Repeater ID="rp_resList" runat="server" OnItemDataBound="rp_resList_ItemDataBound"> 
      <ItemTemplate> 
       <div class="resourcesResult"> 
        <asp:HiddenField ID="hf_resID" runat="server" Value='<%# Eval("Id") %>' /> 
        <a href='<%# Eval("pageID") %>'><%# Eval("name") %></a> 
        <br /> 
        <asp:Literal ID="litSummary" runat="server" Text='<%# Eval("summary") %>'></asp:Literal> 
        <br /> 
<%--     <asp:Repeater ID="rp_tagsSkill" runat="server"> 
         <ItemTemplate> 
          <h6> 
           <%# Eval("Description") %> 

          </h6> 
         </ItemTemplate> 
        </asp:Repeater>--%> 
        <asp:Repeater ID="rp_tagsTopics" runat="server"> 
         <ItemTemplate> 
          <h6> 
           <%# Eval("Description") %> 

          </h6> 
         </ItemTemplate> 
        </asp:Repeater> 
        <div id="controls"> 
         <asp:ImageButton ID="imgbtnBookmark" runat="server" OnClick="imgbtnBookmark_Click" /> 
         <asp:DropDownList ID="ddlGroup" runat="server" DataSourceID="SqlDS_Groups" DataTextField="name" DataValueField="id" AppendDataBoundItems="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" > 
<asp:ListItem Value="-1">Select Group</asp:ListItem> 

protected void imgbtnBookmark_Click(object sender, System.Web.UI.ImageClickEventArgs e) 
{ 
    Bookmark bm = new Bookmark(); 
    HiddenField hiddenField = rptGroup.FindControl("hf_resID") as HiddenField; 
    bm.UserID = 
    Guid.Parse(Membership.GetUser(HttpContext.Current.User.Identity.Name).ProviderUserKey.ToString()); 
    bm.Resoursce.ResourceID = Convert.ToInt32(hiddenField.Value); 
    Bookmark.Insert(bm); 
} 

ответ

1

Попробуйте это изменить вам кнопку тег для id, как CommandArgument значение

<asp:ImageButton ID="imgbtnBookmark" runat="server" 
    OnClick="imgbtnBookmark_Click" 
    CommandArgument='<%# Eval("Id") %>'/> 

в вашем случае нажатия кнопки можно получить доступ с помощью идентификатора

bm.Resoursce.ResourceID = Convert.ToInt32(e.CommandArgument.ToString()); 
0

Изменение rptGroup.FindControl("hf_resID") as HiddenField; в e.Item.FindControl("hf_resID")....

Я надеюсь, что это link поможет.

+1

Вы не можете получить доступ к элементу ретранслятора, используя событие кнопки –

+0

Его можно повторить в цикле, правильно? – Zigma

+0

Итерация не поможет, как вы определяете, какой элемент выбрать при итерации? –

Смежные вопросы