C# 如何在asp.net c中从动态生成的表触发OnServerClick#

C# 如何在asp.net c中从动态生成的表触发OnServerClick#,c#,html,asp.net,C#,Html,Asp.net,我已经为我的系统创建了邮件收件箱页面。在页面加载中,它将根据收件箱表中的表数据动态生成html表。我想在单击每行时触发服务器端函数。单击特定行时,它将获取该行的msgID,并使用OnServerClick关键字将其传递给服务器端函数以打开邮件 为此尝试了很多方法。但当页面加载时,使用OnServerClick生成其javascript代码以触发函数的固定html代码。但我的表是从页面加载动态生成的,不会创建那些Javascript 在这件事上请帮助我。。谢谢对不起,我的英语不好 下面是我用C生成

我已经为我的系统创建了邮件收件箱页面。在页面加载中,它将根据收件箱表中的表数据动态生成html表。我想在单击每行时触发服务器端函数。单击特定行时,它将获取该行的msgID,并使用OnServerClick关键字将其传递给服务器端函数以打开邮件

为此尝试了很多方法。但当页面加载时,使用OnServerClick生成其javascript代码以触发函数的固定html代码。但我的表是从页面加载动态生成的,不会创建那些Javascript

在这件事上请帮助我。。谢谢对不起,我的英语不好

下面是我用C生成动态表的代码#

foreach(数据行中的数据行DRow)
{
int index=tbl.Rows.IndexOf(DRow);
字符串From=tbl.Rows[index]。字段(3);
字符串Subject=tbl.Rows[index]。字段(1);
字符串Msg=tbl.Rows[index]。字段(2);
DateTime sentTime=tbl.Rows[index].字段(10);
var month=sentTime.ToString(“MMMM”,CultureInfo.InvariantCulture);
bool isRead=tbl.Rows[index].字段(11);
int MsgId=tbl.Rows[index].字段(0);
如果(索引!=maxMailsPerPage)
{
如果(isRead==false)
{
PnlInbox.Controls.Add(新的LiteralControl(“+MsgId+”Add“+From+”“+Subject+”“+Msg+”“+month+”“+sentTime.Day+”);
}
其他的
{
PnlInbox.Controls.Add(新的文字控件(“+MsgId+”“+From+”“+Subject+”“+Msg+”“+month+”“+sentTime.Day+”);
}
}
其他的
{
持续
}
}

您需要设置该按钮的ID,找到该按钮,然后将事件处理程序绑定到该按钮。我认为您可以像reapter一样使用asp.net服务器控件来完成此操作。您可以将两个控件添加到模板中,并根据itemdatabound事件中的
isRead
隐藏其中一个控件,您还可以使用
ItemCommand
处理服务器事件。你可以看到
foreach (DataRow DRow in tbl.Rows)
{
    int index = tbl.Rows.IndexOf(DRow);
    string From = tbl.Rows[index].Field<string>(3);
    string Subject = tbl.Rows[index].Field<string>(1);
    string Msg = tbl.Rows[index].Field<string>(2);
    DateTime sentTime = tbl.Rows[index].Field<DateTime>(10);
    var month = sentTime.ToString("MMMM", CultureInfo.InvariantCulture);
    bool isRead = tbl.Rows[index].Field<bool>(11);
    int MsgId = tbl.Rows[index].Field<int>(0);
    if (index != maxMailsPerPage)
    {
        if (isRead == false)
        {
            PnlInbox.Controls.Add(new LiteralControl("<tr class=''><td style='visibility:hidden'>" + MsgId + "</td><td><button runat='server' onserverclick='test1'>Add</button></td><td><input type='checkbox' checked/></td><td><b>" + From + "</b></td><td class='right'><b>" + Subject + "</b></td><td class='right'><b>" + Msg + "</b></td><td class='right'><b>" + month + " " + sentTime.Day + "</b></td></tr>"));
        }
        else
        {
            PnlInbox.Controls.Add(new LiteralControl("<tr class=''><td style='visibility:hidden'>" + MsgId + "</td><td><input type='checkbox' /></td><td>" + From + "</td><td class='right'>" + Subject + "</td><td class='right'>" + Msg + "</td><td class='right'>" + month + " " + sentTime.Day + "</td></tr>"));
        }
    }
    else
    {
        continue;
    }
}