2013-04-09 3 views
0

У меня есть флажки внутри datalist itemtemplate..Но я не могу перейти checkbox chechedchange event. Я установил AutoPostBack как истинный. Но все еще не может произойти пожар. Здесь мои коды.Не удается получить доступ checkbox checkedchanged событие внутри DataList

<ul class="commentlist" > 
        <asp:DataList ID="datalistYorum" runat="server" DataSourceID="ods_yorumlar" 
          RepeatLayout="Flow" ItemStyle-Wrap="True" RepeatDirection="Horizontal" 
          onitemcreated="datalistYorum_ItemCreated" 
          onitemdatabound="datalistYorum_ItemDataBound" onload="datalistYorum_Load" 
          ondatabinding="datalistYorum_DataBinding"> 
         <ItemTemplate> 
         <li class="comment"> 
         <div class="comment-body"> 
          <div class="comment-author vcard"> 
           <div class="lightbox-photo"> 
            <a class="image-overlay" href='<%# "Foto/profil/foto_buyuk/" + Eval("Yorum_Profil_Foto_Buyuk") %>' data-rel="prettyPhoto" title='<%# Eval("Yorum_UserName")%>'> 
            <img src='<%# "Foto/profil/foto_kucuk/" + Eval("Yorum_Profil_Foto_Kucuk") %>' alt='<%# Eval("Yorum_UserName")%>' class="avatar" /> 
            </a> 
           </div> 
           <cite class="fn"><asp:HyperLink ID="linkProfil" runat="server" Text='<%# Eval("Yorum_UserName")%>' NavigateUrl='<%# "~/profil.aspx?user_id="+ Eval("User_ID") %>'></asp:HyperLink></cite> 
           <cite class="fn-time"><%# Eval("Yorum_Gecen_Zaman")%></cite> 
          </div> 
          <p><%# Eval("Yorum_Text")%></p> 
          <div class="reply"><asp:CheckBox ID="checkLike" runat="server" CssClass="comment-reply-link" AutoPostBack="True" /> 
           <asp:ToggleButtonExtender ID="ToggleButtonLike" runat="server" TargetControlID ="checkLike" ImageHeight="32" ImageWidth="52" CheckedImageUrl="~/images/liked.png" UncheckedImageUrl="~/images/like.png" CheckedImageAlternateText="Like"> 
           </asp:ToggleButtonExtender> 
          </div> 
        <div class="reply"><asp:CheckBox ID="checkDislike" runat="server" CssClass="comment-reply-link" AutoPostBack="True" /> 
        <asp:ToggleButtonExtender ID="ToggleButtonDislike" runat="server" TargetControlID="checkDislike" ImageHeight="32" ImageWidth="62" UncheckedImageUrl="~/images/dislike.png" CheckedImageUrl="~/images/disliked.png"> 
        </asp:ToggleButtonExtender> 
        </div> 
         </div> 
         </li> 
         </ItemTemplate> 

         </asp:DataList> 
         <asp:ObjectDataSource ID="ods_yorumlar" runat="server" 
          DataObjectTypeName="Yorum" TypeName="yonet" SelectMethod="PostYorumlariGetir" 
          ondatabinding="ods_yorumlar_DataBinding" 
          onselecting="ods_yorumlar_Selecting" onselected="ods_yorumlar_Selected"> 
         <SelectParameters> 

и код позади:

protected void datalistYorum_ItemDataBound(object sender, DataListItemEventArgs e) 
    { 
     if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem) 
     { 
      CheckBox checkLike = (CheckBox)e.Item.FindControl("checkLike"); 
      CheckBox checkDislike = (CheckBox)e.Item.FindControl("checkDislike"); 

      if (!Page.IsPostBack) 
      { 
       checkLike.CheckedChanged += new EventHandler(checkLike_CheckedChanged); 
       checkDislike.CheckedChanged += new EventHandler(checkDislike_CheckedChanged); 
      } 
     } 
    } 

public void checkLike_CheckedChanged(object sender, EventArgs e) 
    { 
     object user_id = Membership.GetUser().ProviderUserKey; 
     DateTime event_date = DateTime.Now; 
     CheckBox checkLike = (CheckBox)datalistYorum.FindControl("checkLike"); 
     if (checkLike.Checked == true) 
     { 
      try 
      { 
       using (SqlConnection baglanti = new SqlConnection(ConfigurationManager.ConnectionStrings["xxx"].ConnectionString.ToString())) 
       { 

        SqlCommand komut = new SqlCommand("sp_likeordislike", baglanti); 
        komut.CommandType = CommandType.StoredProcedure; 
        komut.Parameters.AddWithValue("@comment",1); 
        komut.Parameters.AddWithValue("@user_id", user_id); 
        komut.Parameters.AddWithValue("@likeordislike", 1); 
        komut.Parameters.AddWithValue("@event_date", event_date); 
        baglanti.Open(); 
        komut.ExecuteNonQuery(); 
        baglanti.Close(); 
       } 
      } 
      catch (Exception) 
      { 
       throw; 
      } 
     } 

    } 

Но ничего happen.Thanks!

+0

вы можете разместить ваш 'Pageload event' код, а? r u привязывает ваш 'datalist' к каждой обратной передаче? –

+0

Событие загрузки страницы не содержит ничего о datalist.And нет, я не привязываюсь к каждому postback. Но здесь мои коды событий pageload 'protected void Page_Load (отправитель объекта, EventArgs e) {if (User.Identity.IsAuthenticated) {FormView frmYorumAt = (FormView) loginYorumAtView.FindControl ("frmYorumAt"); } } '@PraveenNambiar – serdar

+0

Я действительно предлагаю вам использовать' namingcontainer' для 'datalist'. будет работать с 'datalist' –

ответ

0

Если вы не добавляете обработчик событий для флажка «checklike» в Page_Load, это выглядит так, как будто назначение отсутствует.

Изменение 'checklike' заявление Checkbox следующим образом:

<asp:CheckBox ID="checkLike" runat="server" CssClass="comment-reply-link" AutoPostBack="True" OnCheckedChanged="checkLike_CheckedChanged" /> 
+0

Да. Спасибо. – serdar

0

Попробуйте это:

protected void checkDislike_CheckedChanged(Object sender, EventArgs e) 
{ 
    CheckBox cb = (CheckBox) sender; 
    DataListItem item = (DataListItem) cb.NamingContainer; 
    // 
    // 
} 

Ваша разметка будет выглядеть следующим образом:

<asp:CheckBox ID="checkDislike" runat="server" CssClass="comment-reply-link" AutoPostBack="True" OnCheckedChanged="checkDislike_CheckedChanged" /> 

Прежде чем пытаться этот комментарий все другие checkbox events

Проверьте это link:

+0

Моя проблема в том, что о can not доступ к событию ChekedChanged..Таким образом, эти коды не помогают мне mate.But я пробовал и ничего не изменил – serdar

+0

проверить ссылку на мой ответ ... ее поддерживается 'datalist', а также. –

+0

и спасибо Правэну Намбиару за помощь – serdar

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