将属性赋予LiteralControl中的Div

时间:2014-06-03 20:04:12

标签: c# asp.net

我的代码中有以下行:

GroupContent.Controls.Add(new LiteralControl("<div id='TempDivId'>"));

如何将属性附加到该div?

修改

Div是动态创建的,每个div都有一个按钮。我想要实现的是当我点击一个按钮时,只有那个特定的Div才会收到conetenteditable属性。

我的代码中的一个示例:

    foreach (TblComment Index in ListDGComm)
    {
        ImageButton EditComm = new ImageButton();
        EditComm.ImageUrl = "../../../images/edit_property.png";
        EditComm.ToolTip = "edit";
        EditComm.CssClass = "EditComment";
        EditComm.ID = Index.Cnum;
        EditComm.Click += new ImageClickEventHandler(EditComment); 

        string TempDivId = Index.Cnum + "1";

        GroupContent.Controls.Add(new LiteralControl("<div id='TempDivId' class='CommContent'>"));
        GroupContent.Controls.Add(Comment);
        GroupContent.Controls.Add(new LiteralControl("</div>"));
     }

    private void EditComment(object sender, EventArgs e)
    {
    ImageButton Ebtn = (ImageButton)sender;
    string DivId = Ebtn.ID + "1";
    }

我需要使用DivId找到Div并将属性附加到该Div。

1 个答案:

答案 0 :(得分:1)

这个问题似乎有点宽泛,无论如何所有这种方法可以提供帮助:

服务器端

GroupContent.Controls.Add(new LiteralControl(string.Format("<div id='TempDivId' myAttr1='{0}'>", 
                                             'myAttr1Value')));

<强>客户端

var myDiv = document.GetElementById('TempDivId');
myDiv.myAttr1Value = 'thisIsMyAttr1Value';

JQuery客户端

var myAttr1Value = 'thisIsMyAttr1Value';
$('#TempDivId').attr('myAttr1',myAttr1Value)

修改

但是如果你想要一个建议做这样的事情

var yourDiv = new  HtmlGenericControl("div");
yourDiv.Attributes.Add("yourAttributeName","yourAttributeValue");
GroupContent.Controls.Add(yourDiv );

修改

似乎你需要这样的东西:

C#页面代码

var index = 0;

      var htmlDiv = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
      htmlDiv.Attributes.Add("id", string.Format("_myDiv{0}", index));
      htmlDiv.Attributes.Add("class", "CommContent");

      var editComm = new System.Web.UI.HtmlControls.HtmlAnchor();
      var image = new System.Web.UI.HtmlControls.HtmlImage { Src = "../../../images/edit_property.png" };
      editComm.Controls.Add(image);

      editComm.Attributes.Add("onclick", string.Format("MakeEditable('{0}')", string.Format("_myDiv{0}", index)));

<强>的JavaScript

  function MakeEditable(divId) {
    var div = document.getElementById(divId);
    div.setAttribute('contenteditable', 'true');

  }