读书人

请问datalist有关问题

发布时间: 2012-03-30 17:32:09 作者: rapoo

请教datalist问题
<asp:DataList ID="DataList1" runat="server" RepeatColumns="5" RepeatDirection="Horizontal"
OnSelectedIndexChanged="DataList1_SelectedIndexChanged">
<ItemTemplate>
<table>
<tr>
<td>
<%#DataBinder.Eval(Container.DataItem,"MGood")%>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>

想要在列表点击MGood的项目时DataList1_SelectedIndexChanged事件返回项目的值

列表如:
A B E
E C J

点击J时返回J

[解决办法]
你应该
<asp:DataList ID="DataList1" runat="server" RepeatColumns="5" RepeatDirection="Horizontal"
OnSelectedIndexChanged="DataList1_SelectedIndexChanged" DataKeyField="MGood" >

protected void DataList1_SelectedIndexChanged(object sender, EventArgs e)
{
Response.Write(DataList1.DataKeys[DataList1.SelectedIndex].ToString());
}


完整的例子

HTML code
<%@ Page Language="C#" AutoEventWireup="true" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">  protected void Page_Load(object sender, EventArgs e)  {    if (!Page.IsPostBack)    {      String[] x = { "A", "B", "C", "D", "E", "F", "G", "H", "J" };      System.Data.DataTable dataTable1 = new System.Data.DataTable();      System.Data.DataRow dr;      dataTable1.Columns.Add(new System.Data.DataColumn("ID", typeof(System.Int32)));      dataTable1.Columns.Add(new System.Data.DataColumn("MGood", typeof(System.String)));      for (int i = 0; i < 9; i++)      {        dr = dataTable1.NewRow();        dr[0] = i;        dr[1] = x[i];        dataTable1.Rows.Add(dr);      }      DataList1.DataSource = dataTable1;      DataList1.DataBind();    }  }  protected void DataList1_SelectedIndexChanged(object sender, EventArgs e)  {    Response.Write(DataList1.DataKeys[DataList1.SelectedIndex].ToString());  }</script><html xmlns="http://www.w3.org/1999/xhtml"><head id="Head1" runat="server">  <title></title>  <style type="text/css">a{text-decoration:none;}</style></head><body>  <form id="form1" runat="server">  <asp:DataList ID="DataList1" runat="server" RepeatColumns="5" RepeatDirection="Horizontal"    OnSelectedIndexChanged="DataList1_SelectedIndexChanged" DataKeyField="MGood">    <ItemTemplate>      <table>        <tr><td>          <asp:LinkButton ID="lnkSelect" runat="server" CommandName="Select"><%#Eval("MGood")%></asp:LinkButton>        </td></tr>      </table>    </ItemTemplate>  </asp:DataList>  </form></body></html> 

读书人网 >asp.net

热点推荐