首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在datalist中获取链接按钮文本和值?

如何在datalist中获取链接按钮文本和值?
EN

Stack Overflow用户
提问于 2013-11-21 13:03:28
回答 1查看 11.2K关注 0票数 6

我的项目中有一个ajaxtabcontainer控件,其中包含一个datalist,在datalist中,我将名称设置为一个链接按钮。我绑定到源的datalist包含姓名和年龄。现在我想使用年龄作为选定值,就像我们在dropdownlist selected value中使用的一样。我想要的是在单击名称链接按钮时,我会在标签内获得它的值?该怎么做呢?我所做的如下:在默认的aspx中:

代码语言:javascript
复制
<ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
    </ajaxToolkit:ToolkitScriptManager>
    <ajaxToolkit:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="1">
        <ajaxToolkit:TabPanel runat="server" HeaderText="TabPanel1" ID="TabPanel1">
            <HeaderTemplate>
               Names
            </HeaderTemplate>
         <ContentTemplate>
        <asp:DataList ID="DataList1" runat="server" RepeatDirection="Horizontal" RepeatColumns="5" ForeColor="Red"  
            RepeatLayout="Table" >

              <ItemTemplate>
              <asp:LinkButton Text = '<%#Eval("names")%>' ID="lnkpro" runat="server" ForeColor="Red" OnClick="btn_Click"></asp:LinkButton>
              </ItemTemplate>
            </asp:DataList>

        </ContentTemplate>

    </ajaxToolkit:TabContainer>

cs代码:

代码语言:javascript
复制
 protected void btn_Click(object sender, EventArgs e)
    {

        LinkButton myButton = sender as LinkButton;
        if (myButton != null)
        {
            Label1.Text = myButton.Text;
        }

    }
    protected void datalist1_ItemCommand(object source, DataListCommandEventArgs e)
    {
        int i;
        int index = Convert.ToInt32(e.Item.ItemIndex);
        LinkButton lnkid = (LinkButton)e.Item.FindControl("lnkpro");
        Label1.Text = lnkid.Text;
        i = Convert.ToInt32(lnkid.Text);
    }

但它们不起作用。btn_click正在工作,但只给出了一个名称,而不是它的id。第二个datalist_itemcommand不工作了吗?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-11-21 13:21:14

您的aspx页面中没有OnItemCommand="datalist1_ItemCommand“。应在设置OnItemCommand属性后触发datalist1_ItemCommand。

代码语言:javascript
复制
  <asp:DataList ID="DataList1" runat="server" RepeatDirection="Horizontal" RepeatColumns="5" ForeColor="Red"   OnItemCommand="datalist1_ItemCommand"
            RepeatLayout="Table" DataKeyField="age" >
              <ItemTemplate>                  
              <asp:LinkButton Text = '<%#Eval("names")%>' ID="lnkpro" runat="server" ForeColor="Red" OnClick="btn_Click"></asp:LinkButton>
              </ItemTemplate>
            </asp:DataList>

如果您试图在datalist1_itemCommand函数中获取年龄字段值,则需要将DataKeyFeild=设置为" age“。在item命令函数中,您可以执行Convert.ToInt32(DataList1.DataKeyse.Item.ItemIndex)来获取值。您的项目命令函数将为

代码语言:javascript
复制
   protected void datalist1_ItemCommand(object source, DataListCommandEventArgs e)
    {
        int age = Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex]);
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20112879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档