2013-08-16 7 views
0

У меня есть Datalist, внутри itemtemplate у меня есть две метки и одна кнопка. Я хочу получить данные строки строки datalist.Asp.Net: Получение данных строк из Datalist с помощью кнопочного управления внутри Datalist

Моя страница .aspx является:

<asp:DataList ID="DataList1" runat="server" OnItemCommand="DataList1_ItemCommand"> 
    <HeaderTemplate> 

    </HeaderTemplate> 
    <ItemTemplate> 
     <table width="100%"> 
      <tr> 
       <td> 
        <asp:Label ID="lblid11" runat="server" Text='<%#Eval("SubMenu_Id") %>' /> 
       </td> 
       <td> 
        <asp:Label ID="lblid12" runat="server" Text='<%#Eval("SubMenu_Name") %>' /> 
       </td> 
       <td> 
        <asp:Label ID="lblid13" runat="server" Text='<%#Eval("SubMenu_Price") %>' /> 
       </td> 
       <td> 
        <asp:Button ID="btninside" runat="server" CommandName="call" Text="click me" onclick="btninside_Click" /> 
       </td> 
      </tr> 
     </table> 
    </ItemTemplate> 

</asp:DataList> 

и Моя страница .cs является

public partial class Datalist_Button : System.Web.UI.Page 
{ 
    string s = WebConfigurationManager.ConnectionStrings["FoodPlanetConnectionString"].ConnectionString; 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      BindDataList(); 
     } 
    } 

    public void BindDataList() 
    { 
     SqlConnection con = new SqlConnection(s); 
     con.Open(); 
     SqlCommand cmd = new SqlCommand("Select * from Menu", con); 
     SqlDataAdapter da = new SqlDataAdapter(cmd); 
     DataSet ds = new DataSet(); 
     da.Fill(ds); 
     DataList1.DataSource = ds; 
     DataList1.DataBind(); 
     con.Close(); 
    } 

    protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e) 
    { 
     if (e.CommandName == "call") 
     { 
      DataListItem item = (DataListItem)(((Button)(e.CommandSource)).NamingContainer); 
      string text = ((Label)item.FindControl("lblid12")).Text; 
     } 

    } 

Pleae помочь мне, мой код не работает

+0

Вы должны сообщить людям, какую ошибку вы получите. «Код не работает» может означать что угодно. – ciruvan

ответ

0

Попробуйте это.

protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e) 
    { 
     if (e.CommandName == "call") 
     { 
      string text = ((Label)DataList1.Items[e.Item.ItemIndex].FindControl("lblid12")).Text; 
     } 
    } 
Смежные вопросы