Control Not Found In Custom Template?
Dec 15, 2010I take a user control file. I put this
[Code].....
I take a user control file. I put this
[Code].....
Hope this is the correct forum for this question. I am using VWD 2010 an have a web project and get the following error upon execution:
Parser Error Message: Unknown server tag 'custom:AjaxValidator'.
My code is as follows in the .cs file:
[Code]....
[Code]....
I need to develop control (template or user) which must have subtags with some items.
For example :
<SomeControl runat="server" id="scTest">
<column1>TestColumn1</column1>
<column1>TestColumn1</column1>
<column1>TestColumn1</column1>
</SomeControl>
This control may contain some other web server controls such as GridView.I need explanation of experienced developers, how to do that - take me to the right way
I'm having a dumb problem that is killing me. I have created the simpelest custom server control in VS 2008 c# called MyMsgBox. On the ASP page I put it in and register it. But, in the .cs file, when I try to call one of its functions I get the compile error that it is not found. The funny thing is that intellesense has it in the list and all of the functions with their given arguements. At the top of the .cs file I am using the namespace. The code for the custom server control is in the App_Code folder.
Also when I remove all refrences to its functions, the code compiles and when debugging the constructor for the class MyMsgBox gets hit.
<%@ Register TagPrefix="cc1" Namespace="CustomServerControls" %>
...
<cc1:MyMsgBox ID="msgBox1" runat="server" />
Task.aspx.cs
...
Using CustomServerControls;
...
this.msgBox1.confirm("Would You Like to add a new Task for this PO/Contract? ", "hid_f"); Error Message: 'Tasks' does not contain a definition for 'msgBox1' and no extension method 'msgBox1' accepting a first argument of type 'Tasks' could be found (are you missing a using directive or an assembly reference?)
For example:
<uc:AdmiralAckbar runat="server" id="myCustomControl">
<Warning SomeAttribute="It's A Trap">
My Data
</Warning>
</uc:AdmiralAckbar>
I'm not sure how to add SomeAttribute.
Code without the attribute is:
[code]....
I'm trying to have an asp.net custom control with a field like:
<ErrorTemplate>
<h1>Error</h1>
<p>Blue wizard shot the food</p>
</ErrorTemplate>
What I want to end up with is:
<h1>Error</h1><p>Blue wizard shot the food</p> in a string in my codebehind.
At the moment, the process I use to get this data out of the template is:
First this gets instantiated into a placeholder by my code:
ErrorTemplate.InstantiateIn(errorPHolder);
which is an asp.net placeholder control - it has to be instantiated into something which can support controls.
What I then want to do is add this to my page using JQuery and a variable, like this:
string script = "var Errortemplate = " + errorPHolder.ToString() + ";";
scriptmanager.register(script); // pseudocode
so the result would be, on my page:
var Errortemplate = '<h1>Error</h1><p>Blue wizard shot the food</p>';
Then I can use JQuery to do someDiv.html(Errortemplate);
Finally resulting in whatever they put in <ErrorTemplate> appearing on the page
Because I'm using JQuery it might be possible to do this a different way, such as adding the placeholder to the page into a hidden div and using JQuery to copy the values out.
I currently have:
<uc:MyControl ...>
<Template>
</Template>
</uc:Mycontrol>
I would like
<uc:MyControl ...>
<FishBiscuit>
html
</FishBiscuit>
<FishBiscuit>
html
</FishBiscuit>
<FishBiscuit>
html
</FishBiscuit>
<FishBiscuit>
html
</FishBiscuit>
However I'm not sure if it's possible, or how to wire it up if it is.
I want my User Control to be able to have Literal Content inside of it. For Example:
<fc:Text runat="server">Please enter your login information:</fc:Text>
Currently the code for my user control is:
<ParseChildren(True, "Content")> _
Partial Public Class ctrFormText
Inherits UserControl
[code]...
I would like to set the one template for edit/insert and view in my custom FormView control . But i got these odd exception Unable to cast object of type 'System.Web.UI.LiteralControl' to type 'System.Web.UI.WebControls.Table'.
public class CustomFormView : FormView
{
[PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(typeof(FormView), BindingDirection.TwoWay)]
public IBindableTemplate FormTemplate { get; set; }
protected override void OnInit(EventArgs e)
{
ChangeMode(FormViewMode.Edit);
if (FormTemplate != null)
{
if (CurrentMode == FormViewMode.Edit)
{
FormTemplate.InstantiateIn(this);
}
}
base.OnInit(e);
}
}
edited :
in the first step , I created the new user control and added a formview ("FV")
public partial class Form : UserControl
{
private IBindableTemplate _template = null;
[PersistenceMode(PersistenceMode.InnerProperty),
TemplateContainer(typeof(FormView), System.ComponentModel.BindingDirection.TwoWay)]
public IBindableTemplate FormTemplate { set;get }
protected void Page_Init()
{
if (FormTemplate != null)
{
FV.InsertItemTemplate = FV.EditItemTemplate = FormTemplate;
if (!IsPostBack) FormTemplate.InstantiateIn(FV);
}
}
}
Now , I want to convert this user control to web control.
I have created rounded template user control. The need is what ever we add in the user control should appear appear.
[Code]....
Using VS2005, VB code behind, Using Customer Pager Template, in a custom GridView...
View 6 RepliesLets say I have a user control AjaxUC.
<asp:ModalPopupExtender ID="modalSearch" runat="server" TargetControlID="btnHiddenSearch"
PopupControlID="pnlModalSearch" DropShadow="false" RepositionMode="RepositionOnWindowResize"
Drag="false" BackgroundCssClass="modalBackground" >
</asp:ModalPopupExtender>
<asp:Button ID="btnHiddenSearch" runat="server" Style="display: none" />
<asp:Panel ID="pnlModalSearch" runat="server" CssClass="modalPopup">
<asp:Panel ID="pnlModalSearchContent" runat="server">
<asp:Label ID="lblSearchTitle" runat="server" CssClass="modalPopupTitle"></asp:Label>
<div id="divContent" runat="server">
</div>
<asp:Button ID="btnModalSearchClose" runat="server" Text="Close" CausesValidation="false"
OnClick="BtnModalSearchCloseClick" />
</asp:Panel>
</asp:Panel>
<input type="hidden" id="hdVisible" runat="server" />
------------------------------------------------------------------------ AjaxUC.ascx.cs:-
public partial class AjaxUC : System.Web.UI.UserControl { private ITemplate _content = null; [TemplateInstance(TemplateInstance.Single)] [TemplateContainer(typeof(Container))] [PersistenceMode(PersistenceMode.InnerProperty)] public ITemplate Content { get
{ return _content; } set
{ _content = value; } } void Page_Init() { if (_content != null) { Container container = new Container(); _content.InstantiateIn(container); divContent.Controls.Add(container); lblSearchTitle.Text = LblModalSearchText; } } protected void Page_Load(object sender, EventArgs e) { if (hdVisible.Value=="true") { modalSearch.Show(); } } } public class Container : Control, INamingContainer { internal Container() { } }}
This control when used on any aspx page will popup the control placed inside the template "divContent" as modalpopup.
________________________________________________________________________
Now I am trying to convert this user control to Custom Control and my code is:-
[ParseChildren(true)] [PersistChildren(true)] public class DNAWebAjaxTool : PlaceHolder { public event EventHandler BtnModalSearchCloseClickEvent; public event EventHandler Click; private ITemplate _content = null; private HtmlInputHidden _hdVisible; private Panel _pnlModalSearchContent; private Panel _pnlModalSearch; private ModalPopupExtender _modalSearch; private Button _btn; private DivContainer divContent = new DivContainer(); private string _viewState; public DNAWebAjaxTool() { } public Panel PnlModalSearchContent { get
{ if (_pnlModalSearchContent == null) { _pnlModalSearchContent = new Panel(); } return _pnlModalSearchContent; } } public ModalPopupExtender ModalSearch { get
{ if (_modalSearch == null) { _modalSearch = new ModalPopupExtender(); } return _modalSearch; } } public string ViewState { get
{ return _viewState; } set
{ _viewState = value; } } public HtmlInputHidden HdVisible { get
{ if (_hdVisible == null) { _hdVisible = new HtmlInputHidden(); } return _hdVisible; } } [TemplateInstance(TemplateInstance.Single)] [TemplateContainer(typeof(DivContainer))] [PersistenceMode(PersistenceMode.InnerProperty)] public ITemplate Content { get
{ return _content; } set
{ _content = value; } } protected override void OnInit(EventArgs e) { _content.InstantiateIn(divContent); base.Controls.Add(divContent); base.OnInit(e); } protected override void OnLoad(EventArgs e) { if (HdVisible.Value == "true") { ModalSearch.Show(); } base.OnLoad(e); } void _btn_Click(object sender, EventArgs e) { BtnModalSearchCloseClickEvent(sender, e); } public virtual void Hide() { PnlModalSearchContent.Visible = false; ModalSearch.Hide(); ViewState = "false"; } public virtual void Show() { PnlModalSearchContent.Visible = true; ModalSearch.Show(); ViewState = "true"; } protected override void CreateChildControls() { base.CreateChildControls(); } protected override void Render(HtmlTextWriter writer) { if (ViewState == "true") { _modalSearch = new ModalPopupExtender(); _modalSearch.ID = "modalSearch"; _modalSearch.TargetControlID = "btnHiddenSearch"; _modalSearch.PopupControlID = "pnlModalSearch"; _modalSearch.DropShadow = false; _modalSearch.RepositionMode = AjaxControlToolkit.ModalPopupRepositionMode.RepositionOnWindowResize; _modalSearch.Drag = false; _modalSearch.BackgroundCssClass = "modalBackground"; _modalSearch.Show(); _btn = new Button(); _btn.ID = "btnHiddenSearch"; _btn.Style.Value = "display: none"; _btn.RenderControl(writer); _pnlModalSearch = new Panel(); _pnlModalSearch.ID = "pnlModalSearch"; _pnlModalSearch.CssClass = "modalPopup"; _pnlModalSearch.RenderControl(writer); PnlModalSearchContent.ID = "pnlModalSearchContent"; PnlModalSearchContent.RenderControl(writer); divContent.RenderControl(writer); _btn = new Button(); _btn.ID = "btnModalSearchClose"; _btn.Text = "Close"; _btn.CausesValidation = false; _btn.Click += new EventHandler(_btn_Click); _btn.RenderControl(writer); } } } public class DivContainer : Control, INamingContainer { internal DivContainer() { } }
________________________________________________________________________________________________
The problem I am facing is that the modalpopup extennder is not coming up as a popup.
I'm trying to set up custom errors for asp.net in webconfig/global.asax on Server 2003, IIS 6. Got it working find for .aspx pages but not for any htm or html pages. So I found the article describing how to open IIS manager, click configuration, copy path for .aspx extension and add one for .htm Did that.
Restarted website: Now I get the blank white page explaining there's a problem but not the 404 page not found
Restarted web services: same thing
The following references to user controls give the error "Row not found or changed." However, when I remove any one of the references, the results are perfect and everything displays fine.
[Code]....
I have a custom control that is based off the gridview control located at: here The control is basically a gridview that automatically creates a column of checkboxes that can be used to "check" individual rows in the gridview. During the gridview's "CreateColumns" event, the "checkboxcolumn" is created dynamically. The checkboxcolumn also contains another checkbox in the header that is used to "select/deselect all" checkboxes in the column. Since the gridview does not automatically remember the state of the checkboxes in the checkboxcolumn on postback, I added a method to the control called "SaveCheckBoxState" which stores the indexes of the checked rows in Viewstate, and then I modified the "OnRowDataBound" event to check the Viewstate and reset the checkboxes based on the Viewstate.
I then added a call to "SaveCheckBoxState" in the gridview's OnSorting and OnPageIndexChanging events. This works great so long as I'm sorting or changing pages. However, I need it to update the viewstate everytime someone clicks or unclicks one of the checkboxes. At this time, the checkboxes are rendered with an onclick event that calls some javascript to highlight the row, or in the case of the checkbox in the header, to select/deselect all checkboxes. I need to call the "SaveCheckBoxState" method from the javascript used by the customcontrol, or I need to find a way to modify viewstate from javascript and perform the same action as "SaveCheckBoxState".
I've tried adding the "SaveCheckBoxState" to the onclick event declaration in the checkboxes, but when run, it simply tells me that the method is undefined. It doesn't exist in the parent page, and I don't think I should have to make an event for the parent page to pass the click to. It seems to me this should be all self contained within the custom control. Does anyone know how I can acheive this? Here is the code for the gridview OnPreRender event where the onclick event of the checkbox is set:
protected override void OnPreRender(EventArgs e)
{
// Do as usual
base.OnPreRender(e);
// Adjust each data row
foreach (GridViewRow r in Rows)
{
// Get the appropriate style object for the row
TableItemStyle style = GetRowStyleFromState(r.RowState);
// Retrieve the reference to the checkbox
CheckBox cb = (CheckBox)r.FindControl(InputCheckBoxField.CheckBoxID);
// Build the ID of the checkbox in the header
string headerCheckBoxID = String.Format(CheckBoxColumHeaderID, ClientID);
// Add script code to enable selection
cb.Attributes["onclick"] = String.Format("ApplyStyle(this, '{0}', '{1}', '{2}')",
SelectedRowStyle.CssClass,
style.CssClass,
headerCheckBoxID);
// Update the style of the checkbox if checked
if (cb.Checked)
{
r.BackColor = SelectedRowStyle.BackColor;
r.ForeColor = SelectedRowStyle.ForeColor;
r.Font.Bold = SelectedRowStyle.Font.Bold;
}
else
{
r.BackColor = style.BackColor;
r.ForeColor = style.ForeColor;
r.Font.Bold = style.Font.Bold;
}
}
}
I have a custom control which inherit from the Table class and in the constructor, it takes a an integer as an argument. There is no empty constructor.
Is there a way for the user to set that variable in the properties window after they drag the control onto a form.
I know some .NET controls, you can set the source for the parameter to different things like another control's property, QueryString using just the properties window.
Right now, I have to create the control dynamically. I read the query string and then created the object.
here's a situation and I would appreciate your response.
I have programmatically created the Wizard control:
Page_Load(obj s, evargs e)
{
Wizard ClaimDetailWizard = new Wizard();
foreach(int item in selectedItems)
{
//create new step
//added custom control to new step
//add step to wizard
}
//added wizard to a placeholder on a page
}
Based on List I get from Session i added new steps to my wizard To each step I had added a custom control
Each custom control in tern contains another custom Gridview Control in it.
So here's the problem when the page loads for example for two steps. All is good Wizard does what it's supposed to do.
But when I try to use sorting or paging in that custom Gridview. Somehow it displays the gridview I should see in the next step of the wizard.
Also what I'm noticing through debugging. Is that when I press next in the wizard I go back to the original page where I do all of the code specified above, and it recreates the wizzard. But it goes to the next step. Is this the way wizard supposed to work? Just doesn't seem very efficient.
I recently upgraded my database to sql server 2008 and my visual studio to sp1. I did this after i uninstalled the original versions. when i run old projects made in the previos configuration i had (express and viaual studio professional) i cannot connect to database, even though i have added the connections in visual studio and made sure sql server is running. Also When i go to create a new project in visual studio i cannot see the standard project types anymore, i get an error "no template information found".
View 4 Repliescreated a Custom Textbox Control that is intended to be a "masked date" textbox, so that I can handle different ways a user might enter in a date and make it work no matter what.I did this by creating a custom control with 3 separate Textboxes one for month,one for day one for year,then do some handling for different things that could be entered and it would all work.
The problem I am having is,when I add this control to the page,if I do an alert to check the Text value of the custom control it just gives me "[ServerControl1]" even if I enter in a date.
I tried doing an AutoPostback after entering so that it would refesh the Viewstate to have the values of the textboxes but the control doesnt seem to actually postback, even though I have it enabled.accessing the Textbox value after someoen
has entered a date?first custom control I have created and have been using google.
My Server Control Code is as follows:
[Code]...
I'm using ASP.NET MVC 3 right now with unobtrusive jquery client validation. By default, ValidationMessageFor generates a span tag with certain classes and attributes set. I would like it to generate a different template instead. For example, I might want a div tag with a certain background image.Is this possible at all, or can I just obtain the plain text error message from there so I can do my own styling?
View 1 RepliesI'm trying to create a web server control with a css embedded in the assembly.
I marked it as an embedded resource, add assembly attribute to reference it and use the proper methods to include the link to that
css in html code... my page renders ok witk something like <link href='/WebResources.axd?....' />
That's when the problem appears! My control isn't using the css as it appears to not found webResources.axd
I tried directly in web browser to locate http://locahost/mysite/WebResources.axd and it came with http code 404 NOT FOUND
In my IIS i have uncheked "Verify if file exists" on my extensions mapping related to .axd I add HEAD verb in Web.Config to path WebResources.axd and the result is always the same
I have created a user control and am ready to convert it into a custom control. I am trying to follow:
[URL] the steps mentioned in the link.
I am not seeing Build / Publish Web Site option.
I am using VS 2008. I only see Publish User Control but it doesn't give all the settings mentioned below. When I do publish user control, it just copies the ascx file to the desired location. how can I convert the user control to custom control.
Using Visual Studio 2008, I need to create a custom web form that when picked acts like the web content form, by providing a dialog that lets you pick a master page. I have looked through the webform.zip template and thought I had a clue, but trying different combinations has baffled me as it either doesn't appear or doesn't work.
Also when you set the project type to Web and sub project type to CSharp it doesn't appear, so I don't know if this part of the cause, because I would of hoped that the SupportsMasterPage element would of caused this dialog to appear, if it is a web item, but no luck. Frown
p.s. I have used my googling resources to the maximum so unsure what to do.
I'm trying to write a custom rendering template for use in the DisplayForm of a list whose fields include Title, HeaderImageUrl, Body. I've got the following so far:
<SharePoint:RenderingTemplate ID="NewsListForm" runat="server">
<Template>
<h1><SharePoint:FieldValue FieldName="Title" runat="server"/></h1>
<div>
<p>
<SharePoint:UrlField FieldName="HeaderImageUrl" runat="server"></SharePoint:UrlField>
<SharePoint:RichTextField FieldName="Body" runat="server" />
</p>
</div>
</Template>
</SharePoint:RenderingTemplate>
The HeaderImageUrl field is configured to be an Image URL, but when I use the UrlField control, it renders a link.
I was thinking there might be a way to grab field values and put them in attributes, so something like this:
<asp:Image ImageUrl="<% FieldValue["HeaderImageUrl"] %>" runat="server"/>
If this kind of thing isn't possible, then is there another control in Microsoft.SharePoint.WebControls that would render an image from a URL?
I have a custom Html Helper that takes a few parameters and generates some Html. For example:
[Code]....
This would render something like:
[Code]....
I would like to be able to define a Razor Template so the Html Helper renders the Html differenlty:
[Code]....
This would render:
[Code]....