I have read through the documentation concerning the ability to use Custom Attributes from both the client side and the server side. While this is working beautifully when a custom attribute is added at the server side, modified client side, and then re-evaluted at server side. Where I am running into an issue is when I am adding a custom attribute client side, it is not being sent back to the server. Is this a bug, am I missing something, or is it just not designed to do this?
Thanks!
======================================
Code Sample: Click on Node to add Custom Attribute
Client Side. Click Submit button to see attribute not
accessible.
======================================
<%@ Page Language="C#" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e){
lblClientAttribute.Text = "--";
if (!Page.IsPostBack)
RadTreeView1.Nodes[0].Attributes.Add("ServerAttribute", "This is my Server Setting");
else
lblClientAttribute.Text = RadTreeView1.Nodes[0].Attributes["ClientAttribute"]; }
</script>
<script type="text/javascript">
function OnClientNodeClicked(sender, args){
var node = args.get_node(); alert(node.get_attributes().getAttribute("ServerAttribute"));
node.get_attributes().setAttribute("ClientAttribute", "This is my Client Attribute");
alert("Client Attribute Added: " + node.get_attributes().getAttribute("ClientAttribute"));}
</script>
<head runat="server"></head>
<body><form id="form" runat="server">
<telerik:RadScriptManager runat="server" OutputCompression="AutoDetect"></telerik:RadScriptManager>
<telerik:RadTreeView ID="RadTreeView1" runat="server" OnClientNodeClicked="OnClientNodeClicked">
<Nodes><telerik:RadTreeNode runat="server" id="node1" Text="Sample Node"></telerik:RadTreeNode></Nodes>
</telerik:RadTreeView>
<br /><br />
<asp:Label runat="server" ID="lblClientAttribute"></asp:Label>
<br /><br />
<asp:Button runat="server" ID="btnTest" Text="Submit" />
</form></body></html>
Thanks!
======================================
Code Sample: Click on Node to add Custom Attribute
Client Side. Click Submit button to see attribute not
accessible.
======================================
<%@ Page Language="C#" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e){
lblClientAttribute.Text = "--";
if (!Page.IsPostBack)
RadTreeView1.Nodes[0].Attributes.Add("ServerAttribute", "This is my Server Setting");
else
lblClientAttribute.Text = RadTreeView1.Nodes[0].Attributes["ClientAttribute"]; }
</script>
<script type="text/javascript">
function OnClientNodeClicked(sender, args){
var node = args.get_node(); alert(node.get_attributes().getAttribute("ServerAttribute"));
node.get_attributes().setAttribute("ClientAttribute", "This is my Client Attribute");
alert("Client Attribute Added: " + node.get_attributes().getAttribute("ClientAttribute"));}
</script>
<head runat="server"></head>
<body><form id="form" runat="server">
<telerik:RadScriptManager runat="server" OutputCompression="AutoDetect"></telerik:RadScriptManager>
<telerik:RadTreeView ID="RadTreeView1" runat="server" OnClientNodeClicked="OnClientNodeClicked">
<Nodes><telerik:RadTreeNode runat="server" id="node1" Text="Sample Node"></telerik:RadTreeNode></Nodes>
</telerik:RadTreeView>
<br /><br />
<asp:Label runat="server" ID="lblClientAttribute"></asp:Label>
<br /><br />
<asp:Button runat="server" ID="btnTest" Text="Submit" />
</form></body></html>