Add A Usercontrol As The Value Of A Html Attribute
Apr 14, 2010
I am working in a CMS where we use tokens ( which is turned into a user control. Is there a way to add the user control into an attribute value for our template style? example :
<div class="<$tokenName/$>" />
this currently outputs an encoded user control, which is then not parsed by IIS.
In ASP.NET, you can add custom HTML tag attributes to a UserControl via
myLabel.Attributes['my-custom-attribute'] = "someValue"; // or Attributes.Add()
but how can I add an attribute that doesn't have a value? For example, (and I'm not saying that this is what I need) the W3C specification only needs the checked attribute present in a checkbox to consider it checked (instead of checked='true' or something).
I'm looking into using something like this to tag specific elements on my page for some client-side behavior. I know that I can do the same with classes, but (1) classes are iffy to manipulate server-side, and (2) I kind of don't want to pollute my class declarations just for tagging (that may be weird for some, I know).
Supposing I have a user control like this <MyTag:MyWidget runat="server" /> I am wondering if I can do something like <MyTag:MyWidget runat="server" MemberHeight="400" PublicHeight="200" /> So that in MyWidget.ascx I can have <div height="<%=IsLoggedIn ? MemberHeight : PublicHeight%>"> or something like that...? Because I want the height to vary in each page that is using this widget.
I've been tryin to find an example of the syntax for getting an html 'title' for a string when using Html.Encode(). I want to display the full name in the mouseover title, if it's too long.
Is there a way to do this without wrapping the string in a < span >, i.e.
<span title = "<%=Html.Encode(model.Name) %>"> //displays the full name on mouseover <%=Html.Encode(model.Name.Substring(0, 10))%>... //displays the name up to a max length </span>
I have a large string containing a custom HTML tag (xxx). The tag also has two attributes. How would I retrieve the value of the two attributes and then place the tag and its content with a new string derived from those two attributes?
I'm trying to add a new html attribute to my ValidationSummary Html control like this:
<%= Html.ValidationSummary(new { id = "validationSummary" })%>
VS compiler has no problem with it, however when it comes to running it in the browser I get the nasty error message saying:
'System.Web.Mvc.HtmlHelper<Adgistics.Mvc.ViewModels.Forum.IForumCreateOutModel>' does not contain a definition for 'ValidationSummary' and the best extension method overload 'System.Web.Mvc.Html.ValidationExtensions.ValidationSummary(System.Web.Mvc.HtmlHelper, string)' has some invalid arguments
An error occurred during the processing of /_layouts/MyPage/Info.aspx. Literal expressions like '<%$Resources:wss,okbutton_accesskey%>' are not allowed. Use <asp:Literal runat="server" Text="<%$Resources:wss,okbutton_accesskey%>" /> instead
That doesn't work in this situation as that would mean nesting the Literal between the quotes of the accesskey attribute, which causes a "The tag contains duplicate 'ID' attributes" error.
Is there a way to use a string from a resource without having to change the input to an asp:Button? I guess there has to be a way using <%=, but I don't know how I would address the resource itself?
I have been experiencing some very strange behavior using html buttons with the onserverclick attribute. What I am trying to do is use jQuery to designate the default button on the page. By default button I mean the button that is "clicked" when a user hits enter. In testing, I would hit enter while in an input field and sometimes the intended "default" button was clicked and the server side method defined in the corresponding onserverclick attribute was hit. Other times a post back was made without hitting the server method. In order to isolate the issue I created a minimal test case and found some very interesting results.
Client side: [Code] ....
Server side: public partial class admin_spikes_ButtonSubmitTest : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void ServerMethod1(object sender, EventArgs e) { _response.Text = "server method1 was hit"; } protected void ServerMethod2(object sender, EventArgs e) { _response.Text = "server method2 was hit"; } }
What I found was that everything worked as expected with this code except when I removed one of the input elements. In Firefox 3.6 and IE 8 when only one input exists on the page, hitting enter does not trigger the onserverclick, it makes a post back without even being jQuery "clicked" or actually "clicked". You can test this by starting with two inputs and clicking "test2". This will output "server method2 was hit". Then just hit enter and the output will be "server method1 was hit. Now take away an input and run the same test. Click "test2" see the results, then hit enter and you will see that nothing will change because the "test1" method was never hit. Chrome worked as expected
How do I create an ASP.Net MVC Helper for an Html.Label which takes in attributes? Currently when I define an Html.TextBox I am able to pass in a list of attributes. Sort of like below:
new {disabled="disabled", @class="pcTextBoxWithoutPaddingDisabled"})%>
However, it does not look as though the Html.Label has this feature. As a result, I have to define my labels using the label tag. Sort of like below: <label class="pcLabelBlackWithoutPadding"> I would like to be consistent I how my Html element get created. So, how do I create an Html.Label that will take in a list of attributes?
It doesn't seem that the Html.CheckBoxFor helper adds the correct "checked" attribute when rendering the HTML. I have a bool property rendered like so:
I have an ASP.NET content page. The HTML tag associated with the content page is declared in the master page. I need to add an attribute to the HTML tag from the content page. My problem is, I do not know how to access this HTML tag from the content page.
I'm new to ASP.NET and MVC in particular. Now, I'm trying to understand if I can easily get values of custom attributes of submitted data. For example, When writing something like this inside a form (which works and posts and I can get the checkbox value) <%= Html.CheckBox("cb1", new { listen = "listen:6" }) %> Can I get the value of "listen" directly or do I need JS? (I know I can just use hidden fields, but I'm I'm asking anyway)
I have a web user control menu of page. Now I want HOME (which is an hyperlink text) in menu to be Bold at the time default.aspx Loaded (Load event)! How can I do that If any one can provide code! I am using VB .Net at back.
I am using the MetaDataType DataAnnotation to validate my models in an MVC2 application. I also apply the DisplayFormat annotation so that currencies and dates are formatted the way I want. This method works for the original Html Helpers such as :
[Code]....
When I used the new strongly typed helpers:
[Code]....
the formatting never gets applied. Is there a way around this?
I have a set of links that exist in the master page. I have a css class i would like to assign to a particular one of them depending on if that is the page you are at during page load. ex: Home will have the current_page_item class if you are at the index page
This is what I have:
Code:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load DirectCast(Me.Master.FindControl("ctl00_homeLi"), HtmlGenericControl).Attributes.Add("class", "'current_page_item'") End Sub
Is there a way (without overriding Render) to get the Rendered HTML output of a UserControl? What if the UserControl as a control tree with other controls in it?
I created a simple Master Page in Visual Studio 2008:
<%@ Master Language="VB" CodeFile="MasterPage.master.vb" Inherits="MasterPage" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
and got green underlined 'Master' with two warning messages: 1.Validation (ASP.NET): This attribute name must be followed byan equal (=) sign and a value. If the value is in quotation marks, the quotation marks must match. 2. Validation (ASP.NET): Attribute 'Master' is not a valid attribute of element 'Control'.How I can get rid of the messages?