2013-09-12 2 views
0

У меня довольно простая динамически созданная страница asp. Это мой первый раз, используя динамически создаваемые элементы управления asp. Таблица отображается правильно, однако, когда я нажимаю кнопку «Запрос», я не могу подключить событие к методу «OnClick». Я получаю ошибку веб-страницы. «ButtonClick» не определен ». Я сократил и упростил код для краткости.ASP.NET Eventhandler Не работает

DeviceStatus.aspx

<%@ Page Title="Device Status" Language="C#" MasterPageFile="Secure.master" 
'AutoEventWireup="true" CodeFile="DeviceStatus.aspx.cs" Inherits="Devices" %> 

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"></asp:Content> 

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 

<div id="selectDiv" runat="server"></div> 

</asp:Content> 

DeviceStatus.aspx.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 


public partial class Devices : System.Web.UI.Page 
{ 

protected void Page_Load(object sender, EventArgs e) { 

    int i, NumberOfDevices = 3; 
    string Contents; 
    string[] number = new string[] { "1", "2", "3"}; 
    string[] name = new string[] {"mike", "bob", "cindy"}; 
    string[] location = new string[] { "Austin", "Miami", "Atlanta" };  

    // Create event binding 
    PlaceHolder Placeholder1 = new PlaceHolder(); 
    Button button = new Button(); 
    button.Text = "Click"; 
    button.Click += new System.EventHandler(ButtonClick); 
    Placeholder1.Controls.Add(button); 

    //Create Form and table header 
    Contents = "<form runat=\"server\"><table border=\"1\" >"; 
    Contents += "<tr><th>Select</th><th>Number</th><th>Name</th><th>Status</tr>"; 

    // Repeat for each table row 
    for (i = 0; i < NumberOfDevices; i++) { 

     // Creat each row 
     Contents += "<tr><td><asp:Button ID=\"row" + i + "\""  
      + "runat=\"server\"OnClick=\"ButtonClick\" >Query</asp:Button></td>" 
      + "<td>" + number[i] + "</td><td>" + name[i] + "</td><td>" 
      + location[i] + "</td></tr>"; 
    } 

    // Cleanup 
    Contents += "</table>"; 
    Contents += "<asp:PlaceHolder ID=\"Placeholder1\" runat=\"server\"></asp:PlaceHolder>"; 
    Contents += "</form>"; 
    Contents += "</asp:Content>"; 

    //Place dynamic asp controls in webpage 
    selectDiv.InnerHtml = Contents; 
} 


protected void ButtonClick(object sender, EventArgs e) 
{ 
    Response.Redirect("DataRendering.aspx"); 
} 



} 
+0

Это HTML #. HTML # использует C# для вывода HTML (особенно элементов управления ASP) на страницу. Что вы пытаетесь достичь? Начнем. –

+4

Вы не можете создать элемент управления asp.net из этого кода. Проверьте это: http://msdn.microsoft.com/en-us/library/kyt0fzt1.aspx –

+3

Глядя на это, я не думаю, что вам нужно динамически генерировать что-либо. Просто используйте GridView с помощью Select Column. –

ответ

0

Я пошел с предложением Гаррисона. Потребовалось некоторое время, чтобы пройти через код, чтобы понять это, но как только оно было завершено, это было наиболее прямое решение. Спасибо всем за вклад.

Смежные вопросы