December 9, 2015, 2:59 am
We are more than happy to announce the immediate availability of TX Text Control X13. Read more about what's new in the following products: ASP.NET. TX Text Control .NET Server for ASP.NET X13. Windows Forms. TX Text Control .NET for Windows Forms X13. WPF. TX Text Control .NET for WPF X13. ActiveX. TX Text Control ActiveX X13. Download Updated...
More...
↧
December 9, 2015, 3:04 pm
With the release of TX Text Control X13, we released an MVC version of TXTextControl.Web that is available through NuGet. This sample project shows how to load and save documents using controller methods and Javascript. The view contains the TXTextControl.Web HtmlHelper and two buttons to save and to load the document. The Javascript function...
More...
↧
↧
December 10, 2015, 4:43 am
The MVC version of TXTextControl.Web provides an HtmlHelper to support the rendering of the HTML5-based editor in a view. In the HtmlHelper, all properties can be adjusted and methods can be called to load documents or to load a database. In order to render the default view of TXTextControl.Web, the following simple razor code is required: In...
More...
↧
December 10, 2015, 4:45 pm
Since version X13 (23.0), the required TX Text Control Service can be installed on one or more separate servers that are independent from the web servers. This has two significant advantages: The TX Text Control Service work load doesn't have any influence on the web server and the required responsiveness for web requests and web servers can be...
More...
↧
December 10, 2015, 4:45 pm
The MVC version of TXTextControl.Web provides an HtmlHelper to support the rendering of the HTML5-based editor in a view. In the HtmlHelper, all properties can be adjusted and methods can be called to load documents or to load a database. In order to render the default view of TXTextControl.Web, the following simple razor code is required: In...
More...
↧
↧
December 11, 2015, 10:30 am
TXTextControl.Web.MVC is using the ASP.NET Web API framework to synchronize the edited document with the server in order to render the output in a true WYSIWYG manner. From Microsoft MSDN: ASP.NET Web API is a framework that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices. ASP.NET...
More...
↧
December 14, 2015, 5:38 am
Modern HTML5-based web browsers support persistent data storage with an enhanced capacity up to 50MB local storage. It is possible to store data persistently or session based. This sample shows how use the local storage to autosave documents and how to restore documents when the page is refreshed or reloaded. The following Javascript stores the...
More...
↧
December 14, 2015, 5:39 pm
In version X13 (23.0), we introduced new merge block elements based on the new document element SubTextPart. The old concept using two bookmarks is still compatible and will be converted when loading an old template into the designer TX Text Control Words. This new concept makes the handling inside the template designer TX Text Control Words...
More...
↧
December 14, 2015, 5:39 pm
Modern HTML5-based web browsers support persistent data storage with an enhanced capacity up to 50MB local storage. It is possible to store data persistently or session based. This sample shows how use the local storage to autosave documents and how to restore documents when the page is refreshed or reloaded. The following Javascript stores the...
More...
↧
↧
December 15, 2015, 8:36 am
Since version X13 (23.0), the control culture and UI culture of the HTML5 based editor Web.TextControl can be defined using the properties Culture and UICulture. By default and if not specified by the above properties, the user language is defined by the client user settings. For example, if the user specifies a language in the browser language...
More...
↧
December 16, 2015, 7:31 am
The NDC is back in London in January (11-15) with a fantastic speaker line-up including Scott Hanselman, Scott Allen, Dan Wahlin and Miguel Castro. NDC { London }. Since the beginning, we are sponsoring this conference in London. NDC London will be the first of many conferences in 2016 we are going to sponsor. If you are attending this show,...
More...
↧
December 17, 2015, 2:35 am
Consider the following task: The Web.TextControl should be arranged under a custom bar that is located at the top of the page like in the following screenshot: Objects such as DIV elements doesn't really have an option to extend itself to 100% of the remaining space on a page. The CSS Height property set to 100% works only, if the container...
More...
↧
December 18, 2015, 9:31 am
Consider the following task: The Web.TextControl should be arranged under a custom bar that is located at the top of the page like in the following screenshot: Objects such as DIV elements doesn't really have an option to extend itself to 100% of the remaining space on a page. The CSS Height property set to 100% works only, if the container...
More...
↧
↧
December 18, 2015, 9:31 am
Modern HTML5-based web browsers support persistent data storage with an enhanced capacity up to 50MB local storage. It is possible to store data persistently or session based. This sample shows how use the local storage to autosave documents and how to restore documents when the page is refreshed or reloaded. The following Javascript stores the...
More...
↧
December 22, 2015, 6:42 am
What a year! It's been a year full of innovation and creativity. Very early, we announced the roadmap for version X12 (22.0) with improvements for all products of Text Control including highly requested features for our ASP.NET Web Forms control. In April, we released version X12 and presented the new products at the DevIntersection conference...
More...
↧
December 23, 2015, 7:49 am
MS Word provides a quick insert table drop-down to insert tables into the document. This sample shows how to replace the insert table button with such a table insert drop-down. The replacement and the new drop down button is done using Javascript and can be found in the GitHub repository. In order to insert the specific table, a controller...
More...
↧
December 28, 2015, 7:36 am
BASTA! The Best of Best Practices! From February 29th to March 4th 2016, the BASTA! is back in Darmstadt, Germany. Attendees enjoy workshops and sessions from more than 60 international speakers. As always, we are exhibiting in the expo area in order to present our latest products and versions. AT BASTA!, we meet many of our clients and...
More...
↧
↧
December 29, 2015, 4:10 am
SubTextParts have been introduced in version X13 (23.0) as a new document element to realize the new MailMerge merge block concept. But this element can be used for other tasks as well. A SubTextPart object represents a user-defined part of a TX Text Control document with a specific Name and ID. The following code can be used to convert the...
More...
↧
December 30, 2015, 5:52 am
Microsoft Word provides a very smart way to manage documents and related data such as metadata and personal information in a separate view: The backstage view. The ribbon bar contains commands for working in a document and the backstage view provides options and commands to do to a document. From a UX (user experience) point of view, the...
More...
↧
December 30, 2015, 1:42 pm
Hello,
I am using code provided in one of the blogs to create a custom tab for merge codes. We are upgrading from version 16 to 22 and have our own custom merge codes in place, with a web service to pull in data, and, for obvious reasons want to keep this system in place. My custom tab has a dropdown for merge code groups which drives a second dropdown of merge codes within the selected group. Users add or delete merge codes by clicking on an img with either a plus or minus sign. Everything is in place - the dropdowns are working beautifully, but I cannot seem to bind the plus sign img to a click event. I've tried both jQuery and Javascript (commented out in the code snippet). I *am* making sure that the custom tab itself is loaded before attempting the bind, but to no avail. Anyone see the problem? Thanks in advance for any input!
Mike
Code:
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="BrowserControl.aspx.vb" Inherits="WebApplication2.BrowserControl" %>
<%@ Register assembly="TXTextControl.Web, Version=22.0.200.500, Culture=neutral, PublicKeyToken=6b83fe9a75cfb638" namespace="TXTextControl.Web" tagprefix="cc1" %>
<%--<link href="tx.css" rel="stylesheet" />--%>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="Scripts/jquery-1.10.2.js"></script>
<script type="text/javascript">
function loadDDLMergeCodeGroups() {
$(document).ready(function () {
$("#ddlMergeCodeGroup").load("MergeCodeGroups.txt");
});
}
function loadDDLMergeCodes() {
$("#ddlMergeCodeGroup").change(function() {
$("#ddlMergeCode").load(encodeURI("textdata/" + $(this).val() + ".txt"));
});
}
function addInsertFieldEvent() {
$('#insertField').bind('click', function() {
alert('Hello!');
});
}
//function addInsertFieldEvent() {
// document.getElementById('insertField').addEventListener('click', function (e) {
// alert('hello');
// });
//}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<cc1:TextControl ID="TextControl1" runat="server" Dock="Window" />
<script type="text/javascript">
// elements can be only added when the ribbon is completely loaded
TXTextControl.addEventListener("ribbonTabsLoaded", function (e) {
addTab();
loadDDLMergeCodeGroups();
loadDDLMergeCodes();
addInsertFieldEvent();
});
// this function adds a new tab and the tab content page
function addTab() {
sCustomTab = "<li><a onclick='activateCustomTab();' id='tabCustom' data-applicationmodes='0' tabindex='-1' href='#!'>Merge Codes</a></li>";
// add the new tab after the 'View' tab
document.getElementById('tabView').parentElement.insertAdjacentHTML(
'afterend', sCustomTab);
sCustomTabContent = "<div id='ribbonTabCustom' class='tab-content' style='display: none;'>";
sCustomTabContent += "<div id='ribbonGroupCustom' class='ribbon-group'>";
sCustomTabContent += " <div class='ribbon-group-content'>";
sCustomTabContent += " <div class='ribbon-group-content-row'>";
sCustomTabContent += " <div class='ribbon-group-button-group'>";
//sCustomTabContent += " <div onclick='BtnCustomAction()' id='BtnCustom' class='ribbon-button ribbon-button-big' title='Custom'>";
//sCustomTabContent += " <div class='ribbon-button-big-image-container'><img id='imgID_RibbonTabInsert_html_0' class='ribbon-button-big-image' src='custom.png'></img></div>";
sCustomTabContent += " <div class='ribbon-button-big-label-container'>";
sCustomTabContent += " <p class='ribbon-button-label'>Merge Code Group ";
sCustomTabContent += " <select id='ddlMergeCodeGroup'></select> ";
sCustomTabContent += " Merge Code ";
sCustomTabContent += " <select id='ddlMergeCode'></select> ";
sCustomTabContent += " <img id='insertField' src='images/Plus.png' alt='Add' height='20' width='20'></img> ";
sCustomTabContent += " <img id='deleteField' src='images/minus.png' alt='Delete' height='20' width='20'></img> ";
sCustomTabContent += " </p>";
sCustomTabContent += " </div>";
//sCustomTabContent += " </div>";
sCustomTabContent += " </div>";
sCustomTabContent += " </div>";
sCustomTabContent += " </div>";
//sCustomTabContent += " <div class='ribbon-group-label-container'>";
//sCustomTabContent += " <p class='ribbon-group-label'>asdf</p>";
//sCustomTabContent += " </div>";
sCustomTabContent += "</div>";
sCustomTabContent += "</div>";
// add the tab content to the tab content container
document.getElementById('txRibbonTabContentContainer').insertAdjacentHTML(
'afterbegin', sCustomTabContent);
}
function activateCustomTab() {
$('div.tab-content').css("display", "none");
$('ul.tabs a').removeClass("selected");
$("#ribbonTabCustom").css("display", "inline-block");
$("#tabCustom").addClass("selected");
}
</script>
</div>
</form>
</body>
</html>
↧