我的代码中有以下行:
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。
答案 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');
}