我们正在寻找有关如何以编程方式(使用Kentico C#API)向Editable Image添加内容的信息。基本上,相当于可编辑图像的Editable Region article。
有什么建议吗?
谢谢,
维克多
参考文献:
答案 0 :(得分:1)
您可以克隆editableimage webpart,然后在prerender中工作或更改GetContent()方法的覆盖并添加您自己的字符串部分或执行字符串替换并添加代码。
答案 1 :(得分:1)
您要添加到可编辑图像的内容是什么? - 图片路径?!不确定为什么要这样做,但我会采取另一个方向:我会在页面类型中添加一个字段,这样可以更轻松地通过API进行操作。使用API设置此字段应该很容易在页面上获取...例如放置可编辑的图像并使用宏来获取字段值。
答案 2 :(得分:1)
你肯定可以
每个可编辑的cms页面控件都存储在文档的public Card(int number)
{
//Assigning Values to the card
char[] ranks = {'A', '2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K' };
value = ranks[number % 13];
char[] suits = {'S', 'H', 'D', 'C' };
suit = suits[number / 13];
}
字段中,可以使用索引器字段进行访问。例如:
DocumentContent
<强>无论其强>
如果您查看数据库中TreeNode document = DocumentContext.CurrentDocument;
string editableImageControlId = "EditableImage1";
// get the field value
string editableImageContent = document.DocumentContent.EditableRegions[editableImageControlId];
// set it to something new
document.DocumentContent.EditableRegions[editableImageControlId] = newValue;
中的DocumentContent
字段,您会注意到所有内容都是XML。那是因为每个控件都被序列化为XML,然后嵌套在这个字段中。因此,在这种情况下,CMS_Document
变量的值是XML字符串:
editableImageContent
我不建议尝试直接修改它,因为无法确定Kentico是否会更改此代码,或者单个控件是否会更改其序列化输出。
但如果你真的必须
你有几个选择:
1。对于@josh,您可以创建一个新的控件来包装现有的控件并执行一些方法覆盖魔术,以便控件继续代表您进行序列化,然后您只需修改它事后。但是,这需要控件当前正在加载。
2。你可以对野兽进行硬编码并在它发生变化时进行处理(可能会发生变化)。尝试:
<image>
<property name="imagepath">
~/Folder/ImageName.png
</property>
</image>
答案 3 :(得分:0)
使用
function saveToDatabse(editableObj,column,id){
$(editableObj).css("background","#FFF url('../images/loaderIcon.gif')no-repeat right");
$.ajax({
url:"update.php",
type:"POST",
data:'column='+column+'&editval='+editableObj.value+'&id='+id,
cache: false,
sucsess:function(data){
$(editableObj).css("background","#FDFDFD");
}
});
}
和
node.DocumentContent.EditableWebParts
集合以编程方式更新可编辑内容。
可以在node.DocumentContent.EditableRegions
它是Pages-&gt; General-&gt; Advanced-&gt; Edit regions&amp;网页部分。