简体   繁体   English

如何在数据列表中获取链接按钮文本和值?

[英]How to get link button text and value in datalist?

I have an ajaxtabcontainer control in my project which contains a datalist and in datalist, I have set the names as a link button.我的项目中有一个 ajaxtabcontainer 控件,它包含一个数据列表,在数据列表中,我将名称设置为链接按钮。 The datalist that I am binding to a source is containing Names and age.我绑定到源的数据列表包含姓名和年龄。 Now I want to use the age as a selected value as we use in dropdownlist selected value?现在我想使用年龄作为我们在下拉列表选定值中使用的选定值? what I want is on clicking the name link button I get its value inside a label?我想要的是单击名称链接按钮我在标签中获取它的值? how to do it?怎么做? what I have done is as follows: in Default aspx:我所做的如下:在默认 aspx 中:

<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>

in cs code:在cs代码中:

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

but they are not working.但他们不工作。 the btn_click is working but giving the only name not its id. btn_click 正在工作,但给出了唯一的名称而不是它的 id。 the second datalist_itemcommand is not working?第二个 datalist_itemcommand 不起作用? Thank you.谢谢。

you did not have OnItemCommand="datalist1_ItemCommand" in the aspx page.您在 aspx 页面中没有 OnItemCommand="datalist1_ItemCommand" 。 datalist1_ItemCommand should fire after you set OnItemCommand property. datalist1_ItemCommand 应在您设置 OnItemCommand 属性后触发。

  <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>

If you are trying to get the age field value in the datalist1_itemCommand function, you need to set DataKeyFeild= "age".如果您尝试在 datalist1_itemCommand 函数中获取年龄字段值,则需要设置 DataKeyFeild="age"。 And in the item command function you can do Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex]) to get the value.在 item 命令函数中,您可以执行 Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex]) 来获取值。 Your item Command function will be您的项目命令功能将是

   protected void datalist1_ItemCommand(object source, DataListCommandEventArgs e)
    {
        int age = Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex]);
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM