在代码中为表创建html按钮。如何处理服务器回调?

时间:2014-03-09 14:54:29

标签: html asp.net webforms

我目前正在开展一个项目并陷入困境。我有一个Literal控件,放在我的.aspx页面中,我使用这样的stringbuilder来填充数据:

public string CreateNewEntry(String garageName, String garageType,String garageAdress, String garagePhone, String garageId)
{

    StringBuilder sb = new StringBuilder();
    sb.Append(@"<tr class=""odd"">");
    sb.Append(@"<td class=""v-middle"">");
    sb.Append(garageName);
    sb.Append(@"</td>");

    sb.Append(@"<td class=""v-middle"">");
    sb.Append(garageType);
    sb.Append(@"</td>");

    sb.Append(@"<td class=""v-middle"">");
    sb.Append(garageAdress);
    sb.Append(@"</td>");

    sb.Append(@"<td class=""v-middle"">");
    sb.Append(garagePhone);
    sb.Append(@"</td>");


    sb.Append(@"<td class="""">");
    sb.Append(@"<a href=""#"" class=""btn btn-sm btn-icon btn-success"" id=""");
    sb.Append("edit"+garageId);
    sb.Append(@""" name=""");
    sb.Append("edit"+garageId);
    sb.Append(@"""runat=""server"" OnServerClick=""processRowButtonClick""><i class=""fa fa-edit""></i></a>");

    sb.Append(@"<a href=""#"" class=""btn btn-sm btn-icon btn-danger"" id=""");
    sb.Append("delete"+garageId);
    sb.Append(@""" name=""");
    sb.Append("delete"+garageId);
    sb.Append(@"""runat=""server"" OnServerClick=""processRowButtonClick""><i class=""fa fa-ban fa-indent""></i></a></td></tr>");

    return sb.ToString();


}

然后我运行一个SQL查询,收集数据并通过foreach循环将其循环到Literal controller

public void garageViewPopulator()
{
    serviceDatabaseDataContext dbQuery = new serviceDatabaseDataContext();
    var query = (from GarageDetails in dbQuery.GarageDetails
                 select GarageDetails);

    String _constructorString = "";
    NewListEntry tableEntry = new NewListEntry();

    foreach (GarageDetail item in query)
    {
         //Creating new HTML code from the class above
        _constructorString += tableEntry.CreateNewEntry(item.garageName.ToString(), item.garageType.ToString(), item.garageAdress.ToString(), item.garagePhone.ToString(), item.garageId.ToString());
    }

    // My litteral
    garageListHolder.Text = _constructorString;
}

然后我有一个:

  protected void processRowButtonClick (object sender, EventArgs e)
    { 
       //Retrieve what button id was pressed, and exec action.
    }

在我的代码隐藏文件中。我假设当用户按下我生成的表格中的按钮时会调用它。

A view of the generated list from html

有两个问题,是否可以这样做?当我从代码生成按钮时,代码会将按钮注册为可点击吗?因为现在,单击它们不会在后面的代码中执行当前的 processRowButtonClick 函数。

其次,如果可以,我如何获得按下按钮的名称/ ID?有人有任何意见吗?

(实现我想要做的事情可能更容易,所以我很乐意接收有关更好解决方案的信息)。

0 个答案:

没有答案