C# 如何通过加载页面将数据绑定到一个gridview并单击gridview中的对象

C# 如何通过加载页面将数据绑定到一个gridview并单击gridview中的对象,c#,asp.net,C#,Asp.net,这是社交网络主页的html代码。 我使用gridview by templet元素,该元素通过加载页面从数据库绑定post和图像,但我希望通过单击来绑定每个post的comnt,以显示注释 <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="Conte

这是社交网络主页的html代码。 我使用gridview by templet元素,该元素通过加载页面从数据库绑定post和图像,但我希望通过单击来绑定每个post的comnt,以显示注释

<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");
        }


    }
}

使用制度;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.UI;
使用System.Web.UI.WebControl;
公共部分类页面\u main:System.Web.UI.Page
{
线的字符串m,j,Btnn;
int k=1,记录=0;
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!IsPostBack)
{BindData();}
}
受保护的void BindData()
{
DataSet.usersDataTable UserDataTable=
新建DataSet.usersDataTable();
DataSetTableAdapters.UserStableApter UserTableAdapter=
新的DataSetTableAdapters.userStableApter();
FillBy_userID(userDataTable,(Int64)会话[“userID]”);
DataSet.usersRow userrow=UserDataTable[0];
//////////////////////////////////////////////////
DataSet.postDataTable postDataTable=新建DataSet.postDataTable();
DataSetTableAdapters.postTableAdapter postTableAdapter=新的DataSetTableAdapters.postTableAdapter();
postDataTableTor.FillBy_showPost(postDataTable,会话[“email”].ToString());
///////////////////////////////////////////////////
//////////////////////////////////////////////////
if(postDatatabale.Count!=0)
{
DataSet.postRow postRow=postDatatabale[0];
字符串imageProfile=“~/profile/”+会话[“用户名”]+“.jpg”;
gvPosts.DataSource=postDatatabale;
gvPosts.DataBind();
对于(int i=0;i
您必须使用RowCommand事件:

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

参考资料:

我的错误在//ta_comment.FillBy_comment_post(comment,j,int.Parse(m));DataSet.commentRow行=注释[索引]//所以你扔了一些代码问什么?问题到底出在哪里?->@yasin你能查到我的答案吗?
protected void gvPosts_RowCommand(object source, RepeaterCommandEventArgs) 
{
    if (e.CommandName == "ShowComment")
    {
        int index = Convert.ToInt32(e.CommandArgument);
        GridViewRow row = ContactsGridView.Rows[index];
    }
}