Pankaj Pawar
Pankaj Pawar

Reputation: 1

Button In Datalist Not Working

I have a datalist control which shows id , image , name and a button also, and i want , when i click the button the id should be insert in the table.... my code is below....

.aspx code

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:DataList ID="SQuestionsDataList" class="" runat="server" OnItemCommand="SQuestionsDataList_ItemCommand">
                    <ItemTemplate>
                        <div class="thumbnail" style="text-align: left;">
                            <div class="col-lg-12 thumbnail" style="padding: 0px;">
                                <div class="col-lg-2">
                                    <asp:Image ID="Image3" class=" img-rounded" ImageUrl='<%# Eval("picture") %>' Width="50px"
                                        Height="50px" Style="" runat="server" />
                                </div>
                                <div class="col-lg-10" style="padding: 0px; margin-left: -35px;">
                                    <strong>
                                        <asp:Label ID="Label10" runat="server" Text='<%# Eval("sfname") %>'></asp:Label>
                                        <asp:Label ID="Label12" runat="server" Text='<%# Eval("slname") %>'></asp:Label>
                                        <asp:Label ID="Labelid" runat="server" Text='<%# Eval("Qid") %>'></asp:Label><br />
                                    </strong>Posted On
                                    <asp:Label ID="Label11" runat="server" Text='<%# Eval("SystemDate","{0:D}") %>'></asp:Label>
                                    <asp:Button ID="Button4" runat="server" CommandName="TakeID" Text="Fetch" />
                                </div>
                            </div>
                            <div class="thumbnail" style="text-align: left; margin-top: ; border-bottom-style: none;
                                width: 100%;">
                                <div style="padding-top: 5px;">
                                    <asp:Label ID="SQuestions" Font-Size="15px" Style="" runat="server" Text='<%# Eval("Question") %>'></asp:Label>
                                </div>
                                <div>
                                    <asp:Image ID="Image2" class="img-rounded" ImageUrl='<%# Eval("Snapshot") %>' Style=""
                                        runat="server" Visible="True" ViewStateMode="Inherit" /><br />
                                </div>
                                <div style="color: black; font-size: 15px; padding-top: 5px;">
                                    &nbsp;Like &nbsp; <a href="<%# writeurl(Eval("Qid").ToString() ,Eval("Uid").ToString()) %>"
                                        style="color: black;">Comment </a>&nbsp;
                                </div>
                                <div style="color: black; background-color: #222937; color: White; font-size: 15px;
                                    padding-left: 5px;">
                                    0 Likes &nbsp; 0 Comments
                                </div>
                            </div>
                        </div>
                    </ItemTemplate>
                </asp:DataList>
            </ContentTemplate>
        </asp:UpdatePanel>

.cs code

in page load

if (!IsPostBack)
    {
        SqlDataAdapter da = new SqlDataAdapter("select * from student full outer join StudentQuestions on student.sid = StudentQuestions.Uid where scourse = '" + Session["scourse"] + "' order by Qid desc", con);
        DataTable dt = new DataTable();
        da.Fill(dt);
        SQuestionsDataList.DataSource = dt;
        SQuestionsDataList.DataBind();
    }

or other is

protected void SQuestionsDataList_ItemCommand(object source, DataListCommandEventArgs e)
{
    if (e.CommandName == "call")
    {
        DataListItem item = (DataListItem)(((Button)(e.CommandSource)).NamingContainer);
        string text = ((Label)item.FindControl("Labelid")).Text;
        con.Open();
        SqlCommand cmd = new SqlCommand("insert into comments (qid , sid) values ('" + text.ToString() + "' , '" + Session["studentid"] + "')", con);
        cmd.ExecuteNonQuery();
        con.Close();
    }
}

Thanks for any help

Upvotes: 0

Views: 68

Answers (1)

Ahmad Jamal
Ahmad Jamal

Reputation: 216

CommandName of Button is CommandName="TakeID" then you should same CommandName in if condition in ItemCommand event

 if (e.CommandName == "TakeID")
{
    DataListItem item = (DataListItem)(((Button)(e.CommandSource)).NamingContainer);
    string text = ((Label)item.FindControl("Labelid")).Text;
    con.Open();
    SqlCommand cmd = new SqlCommand("insert into comments (qid , sid) values ('" + text.ToString() + "' , '" + Session["studentid"] + "')", con);
    cmd.ExecuteNonQuery();
    con.Close();
}

Upvotes: 1

Related Questions