1.通过隐藏Label,然后得到其值的方法得到id号
<ItemTemplate>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="300" border="1">
<TR>
<TD>
<asp:LinkButton id="LinkButton1" runat="server" CommandName="select" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"CustomerID")%>'>
<%# DataBinder.Eval(Container.DataItem,"CompanyName")%>
</asp:LinkButton></TD>
<TD>
<asp:Label id="Label1" runat="server">
<%# DataBinder.Eval(Container.DataItem,"CustomerID")%>
</asp:Label></TD>
</TR>
</TABLE>
</ItemTemplate>
--得到值
protected void CustomersList_ItemCommand(object Sender, DataListCommandEventArgs e)
{
// 得到datalist的命名
string cmd = ((LinkButton)e.CommandSource).CommandName;
if (cmd == "select")
((DataList)Sender).SelectedIndex = e.Item.ItemIndex;
//选择新的index时重显数据
BindList();
//保留customerID
ViewState[_customerID] = ((Label)e.Item.FindControl("CustomerID")).Text;
}
--或,现在没有明白这两者的区另,可能microsot只是为的体现不同的技巧
private void CustomerList_ItemCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
string _customerID;
_customerID=(string) e.CommandArgument;
Label2.Text=_customerID;
}