2017-05-26 16 views
-1

これはソーシャルネットワークのメインページのHTMLコードです。 私はロードページによってデータベースから投稿テンプレット要素によって、GridViewコントロールや画像バインドを使用しますが、私はあなたがRowCommandイベントを使用する必要があり、各ポストのためcomntがbuttinショーのコメントどうすればロードページでデータを1つのgridviewにバインドし、gridview内のオブジェクトにクリックする

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" 
Runat="Server"> 
    <asp:GridView ID="gvPosts" runat="server" 
     AutoGenerateColumns="False" Height="46px" Width="45px"> 

       <Columns> 
        <asp:TemplateField> 
         <ItemTemplate> 
          <fieldset class="color"> 

           <fieldset> 
            <asp:Label ID="Label5" runat="server" Text='<%# Eval("username") %>'></asp:Label> 
            <div class="crope_main" id="zoom"> 
            <asp:Image ID="ImageUSER" runat="server" Width="50px" Height="50px" ImageUrl='<%# Eval("picture") %>' /> 
            </div> 
            <asp:Label ID="Label6" runat="server" Text='<%# Eval("biografy") %>'></asp:Label> 

            <fieldset> 
             <asp:Label ID="Label7" runat="server" Text='<%# Eval("date_post") %>'></asp:Label> 
            </fieldset> 
           </fieldset> 
           <asp:Image ID="imgeposts" runat="server" Height="200px" Width="400px" ImageUrl='<%# Eval("pic_book") %>' Style="margin-top: 43px; margin-right: 2px;" /> 
           <fieldset> 


            <asp:Label ID="Label1" runat="server" Text="NameBOOk:"></asp:Label> 


            <asp:Label ID="Label2" runat="server" Text='<%# Eval("name_book") %>' /> 
           </fieldset> 
           <fieldset> 
            <asp:Label ID="Label3" runat="server" Text="Writer:"></asp:Label> 
            <asp:Label ID="Label4" runat="server" Text='<%# Eval("wrieter") %>'></asp:Label> 
           </fieldset> 
          </fieldset> 
          <div> 

           <asp:Label ID="lblidpost" runat="server" Text='<%# Eval("id_post_FK") %>' Visible="false" /> 
           <asp:Label ID="lbluser_id_email" runat="server" Text='<%# Eval("id_user_fk") %>' Visible="false" /> 

           <asp:Label ID="lbllike" runat="server" Text='<%# Eval("SUM_LIKE") %>' /> 


          </div> 

          <asp:TextBox ID="TxtSummery" runat="server" Text='<%# Eval("summery") %>' TextMode="MultiLine" Width="390px" Height="34px" Enabled="false"></asp:TextBox> 

          </div> 
          <div> 
           <asp:Button ID="btn_showComment" runat="server" Text="show comment" OnClick="btn_showComment_Click" /> 

          </div> 
          <div> 
           <asp:TextBox runat="server" TextMode="MultiLine" Width="391px" ></asp:TextBox> 
          </div> 

         </ItemTemplate> 
        </asp:TemplateField> 
        <asp:ImageField> 
        </asp:ImageField> 
       </Columns> 

      </asp:GridView> 
      <asp:Image ID="imgLoader" runat="server" ImageUrl="~/images/loading.gif" /> 
     </div> 
    </fieldset> 

</asp:Content> 


using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class pages_main : System.Web.UI.Page 
{ 
    string m,j, Btnn, ofline; 
    int k = 1, record = 0; 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     if(!IsPostBack) 
     { BindData(); } 


    } 


    protected void BindData() 
    { 

     DataSet.usersDataTable oUserDataTable = 
      new DataSet.usersDataTable(); 
     DataSetTableAdapters.usersTableAdapter oUserTableAdapter = 
      new DataSetTableAdapters.usersTableAdapter(); 
     oUserTableAdapter.FillBy_userID(oUserDataTable, (Int64)Session["UserID"]); 
     DataSet.usersRow userrow = oUserDataTable[0]; 
     ////////////////////////////////////////////////// 
     DataSet.postDataTable postDatatabale = new DataSet.postDataTable(); 
     DataSetTableAdapters.postTableAdapter postTabeladabtor = new DataSetTableAdapters.postTableAdapter(); 
     postTabeladabtor.FillBy_showPost(postDatatabale, Session["email"].ToString()); 
     /////////////////////////////////////////////////// 
     ////////////////////////////////////////////////// 
     if (postDatatabale.Count != 0) 
     { 
      DataSet.postRow postrow = postDatatabale[0]; 
      string imageProfile = "~/profile/" + Session["Username"] + ".jpg"; 
      gvPosts.DataSource = postDatatabale; 
      gvPosts.DataBind(); 
      for (int i = 0; i < gvPosts.Rows.Count; i++) 
      { 
       ImageButton h = ((ImageButton)gvPosts.Rows[i].FindControl("imaglike")); 
       ImageButton h1 = ((ImageButton)gvPosts.Rows[i].FindControl("imageDisLike")); 
       //h.ID = "delbtn" + gvPosts.Rows[i]; 
       // h1.ID = "imbtn" + gvPosts.Rows[i]; 
       // h.ImageUrl = ("../Images/heart.png"); 
       //h1.ImageUrl = ("../Images/Broken_Heart.png"); 
      } 
     } 
    } 



    protected void btn_showComment_Click(object sender, EventArgs e) 
    { 
     GridViewRow gridViewRow = (GridViewRow)(sender as Control).Parent.Parent; 
     int index = gridViewRow.RowIndex; 
     Button btn = (Button)sender; 
     GridViewRow gvr = (GridViewRow)btn.NamingContainer; 
     m = ((Label)this.gvPosts.Rows[gvr.RowIndex].FindControl("lblidpost")).Text; 
     j = ((Label)this.gvPosts.Rows[gvr.RowIndex].FindControl("lbluser_id_email")).Text; 
     DataSet.commentDataTable comment = new DataSet.commentDataTable(); 
     DataSetTableAdapters.commentTableAdapter ta_comment = new DataSetTableAdapters.commentTableAdapter(); 
     ta_comment.FillBy_comment_post(comment, j, int.Parse(m)); 
     DataSet.commentRow row = comment[index]; 
     if(row.text_comment!="") 
     { 
      Response.Write("hello"); 
     } 


    } 
} 
+0

私の間違いは//ta_comment.FillBy_comment_post(comment、j、int.Parse(m))にあります。 DataSet.commentRow row = comment [index]; // – yasin

+0

なので、コードを投げて何を尋ねますか?問題はどこにありますか? - > https://stackoverflow.com/help/mcve – Aristos

+0

@yasin私の答えを確認できましたか? – hardkoded

答えて

0

にクリックによってバインドさ欲しい:

<asp:Button ID="btn_showComment" runat="server" Text="show comment" CommandName="ShowComment" /> 

そして横のコードから:

protected void gvPosts_RowCommand(object source, RepeaterCommandEventArgs) 
{ 
    if (e.CommandName == "ShowComment") 
    { 
     int index = Convert.ToInt32(e.CommandArgument); 
     GridViewRow row = ContactsGridView.Rows[index]; 
    } 
} 

参考:https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowcommand(v=vs.110).aspx

関連する問題