如何在使用c#点击datalist中的复选框时找到linkbutton值?

时间:2013-12-04 06:20:46

标签: c# asp.net

这就是我所做的:

<ajaxToolkit:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0">
                                <ajaxToolkit:TabPanel ID="TabPanel1" runat="server" HeaderText="TabPanel1">
                                    <HeaderTemplate>
                                        Pro
                                    </HeaderTemplate>
                                    <ContentTemplate>

                                        <div style="height: 100px; width: 200px; overflow: Auto">
                                            <asp:DataList ID="DataList1" runat="server" CellPadding="2" CellSpacing="2" ForeColor="Red">
                                                <ItemTemplate>
                                                    <asp:CheckBox ID="checkbox" runat="server" AutoPostBack="true" OnCheckedChanged="checkLike_CheckedChanged" />
                                                    <asp:LinkButton Text='<%#Eval("UPP")%>' ID="lnkpro" runat="server" CssClass="linkbutton"
                                                        OnClick="btn_Click" CommandArgument='<%# Eval("UCode") %>'></asp:LinkButton>
                                                </ItemTemplate>


                                            </asp:DataList>
                                        </div>

                                    </ContentTemplate>
                                </ajaxToolkit:TabPanel>
                                <ajaxToolkit:TabPanel ID="TabPanel2" runat="server" HeaderText="services">
                                    <HeaderTemplate>
                                        Sets
                                    </HeaderTemplate>
                                    <ContentTemplate>

                                        <div style="height: 100px; width: 200px; overflow: Auto">
                                            <asp:DataList ID="DataList2" runat="server" CellPadding="2" CellSpacing="2">
                                                <ItemTemplate>
                                                    <asp:CheckBox ID="checkbox" runat="server" />
                                                    <asp:LinkButton Text='<%#Eval("SNA")%>' ID="lnkpro1" runat="server" CssClass="linkbutton"
                                                        OnClick="btn_Click1" CommandArgument='<%# Eval("Code") %>'></asp:LinkButton>
                                                </ItemTemplate>
                                            </asp:DataList>
                                        </div>
                                    </ContentTemplate>
                                </ajaxToolkit:TabPanel>
                            </ajaxToolkit:TabContainer>

现在我的问题: 此代码块会在其前面生成所有复选框的链接按钮列表。所以我想要的是获取复选框checkchanged上相应的linkbutton值。  可能吗? 例如 [] linkbtn1 [] linkbtn2 当我检查第一个复选框时,应该获取id而不是linkbutton1的文本。([]是复选框)

2 个答案:

答案 0 :(得分:2)

每个链接按钮的ID在数据列表的每一行上都是相同的,每个链接按钮的文本值将是绑定到该链接按钮的SNA值。您可以使用复选框的SNA事件检索CheckChanged值,如下所示:

DataList的{​​{1}}标记中:

ItemTemplate

现在我们已经连接了检查更改事件,现在是时候实现处理程序了,如下所示:

<asp:CheckBox ID="checkbox" runat="server" 
              OnCheckedChanged="checkbox_CheckChanged" />

答案 1 :(得分:2)

试试这个

protected void checkbox_CheckedChanged(object sender, EventArgs e)
    {
        foreach (DataListItem item in DataList1.Items)
        {
            CheckBox chk = (CheckBox)item.FindControl("checkbox");
            LinkButton lnkbtnActivate = (LinkButton)item.FindControl("lnkpro");

            if (chk.Checked == true)
            {
                string Result = lnkbtnActivate.Text;
            }
        }
    }