-1

我有一个按钮名称和 uri 列表,其中包含指向我网站中其他页面的链接。这存储在我的数据库中。我还有一个javascript函数,可以在页面加载时动态创建按钮。现在我需要在服务器端遍历按钮名称列表并为列表中的每个按钮创建一个按钮?

这可能吗。我在想也许使用字符串构建器来构建一些 html 来创建按钮,或者我更喜欢的方法是在每次需要新按钮时调用 javascript。

这是我的javascript函数:

    function createHref(Name, Uri) {
        var leftDiv = document.createElement("div"); //Create left div
        leftDiv.id = "left"; //Assign div id
        leftDiv.setAttribute("style", "float:left; width:66.5%; line-height: 26px;       text-align:left; font-size:12pt; padding-left:8px; height:26px;"); //Set div attributes
        leftDiv.style.background = "#FF0000";
        a = document.createElement('a');
        a.href = Uri;
        a.innerHTML = Name
        leftDiv.appendChild(a);
        document.body.appendChild(leftDiv);
    }
4

1 回答 1

0

由于这是 ASP.NET,我将使用中继器并将数据源设置为您从数据库中提取的按钮数据。

例如,我假设您有一个MyButton映射到您的数据的自定义对象:

public class MyButton
{
     public MyButton()
     {}

     public string Name { get; set; }
     public string Href { get; set; }
}

然后,您将对转发器进行一些标记:

<asp:Repeater ID="rptMyButtons" runat="server" OnItemDataBound="rptMyButtons_ItemDataBound">
   <HeaderTemplate>
       <ul>
   </HeaderTemplate>
       <ItemTemplate>
            <li>
               <asp:HyperLink ID="hypUrl" runat="server" />
            </li>
       </ItemTemplate>
   <FooterTemplate>
       </ul>
   </FooterTemplate>
</asp:Repeater>

然后,您将数据绑定到转发器并在对象上设置一些属性:

 protected void Page_Load(object sender, EventArgs e)
 {
      if(!Page.IsPostBack)
      {
           rptMyButtons.DataSource = //your data from the database
           rptMyButtons.DataBind();
      }
 }

protected void rptMyButtons_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
    {
         MyButton button = (MyButton)e.Item.DataItem;
         HyperLink hypUrl = (HyperLink)e.Item.FindControl("hypUrl");
         hypUrl.Text = button.Name;
         hypUrl.NavigateUrl = button.Href;
    }
}

看起来您可能正在尝试构建站点地图?

我有一个按钮名称和 uri 列表,其中包含指向我网站中其他页面的链接

这就是为什么我使用 a<ul><li>'s 将您的按钮包含在一个更有意义的列表中。但是,很容易将其更改回 a <div>

于 2013-09-03T10:12:06.910 回答