我的项目中有一个包含数据列表的ajaxtabcontainer控件,在datalist中,我将名称设置为链接按钮。我绑定到源的数据列表包含名称和年龄。现在我想使用age作为选择值,因为我们在dropdownlist中选择了值?我想要的是点击名称链接按钮我在标签内得到它的价值?怎么做?我所做的如下: 在默认的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>
在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);
}
但他们没有工作。 btn_click正在工作,但只给出了唯一的名称而不是它的id。第二个datalist_item命令不起作用?谢谢。
答案 0 :(得分:0)
你在aspx页面中没有OnItemCommand =“datalist1_ItemCommand”。设置OnItemCommand属性后,应激活datalist1_ItemCommand。
<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函数中获取age字段值,则需要设置DataKeyFeild =“age”。在item命令函数中,您可以执行Convert.ToInt32(DataList1.DataKeys [e.Item.ItemIndex])来获取值。您的项目命令功能将是
protected void datalist1_ItemCommand(object source, DataListCommandEventArgs e)
{
int age = Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex]);
}