Repeater Doesn't Fire ItemCommand Event
Oct 11, 2010
My repeater is available in a user control and I added the user control as a web part to an existing webpartzone. I could see all rows in the repeater (along with buttons). Once I click the (any) button, it loses all the rows and itemcommand never fires. I am using ASP.NET 4.0
View 1 Replies
Similar Messages:
Feb 21, 2011
I am building a website whereby people, before checking out of the shopping cart (and transferring to the payment iframe) can select which items from the shopping cart list to delete. The results from the shopping card are listed in a Repeater control. There is a Button in the Repeater which deletes a record from the database (used LINQ to SQL to do that.)
THe problem is that the ItemCommand event doesn't fire when i click the button. I tried 'response.write(test)' and it still would not work. It is as if the repeater cannot interact with the commands. It does render the results tho.
Here's the code:
[Code]....
View 2 Replies
Feb 22, 2011
I am building a website whereby people, before checking out of the shopping cart (and transferring to the payment iframe) can select which items from the shopping cart list to delete. The results from the shopping card are listed in a Repeater control. There is a Button in the Repeater which deletes a record from the database (used LINQ to SQL to do that.)
The problem is that the ItemCommand event doesn't fire when i click the button. I tried response.write(test) and it still would not work.
It is as if the repeater cannot interact with the commands. It does render the results though.
[Code]....
View 2 Replies
Jun 2, 2010
I've got a repeater that's used to display the output of a dynamic report that takes criteria from webcontrols on the page. Within the repeater's ItemDataBound method I'm adding controls (Linkbuttons for sorting by column values) dynamically to the header of the repeater based on values selected in a checkbox list and at this point setting the CommandArgument and CommandName properties of the linkbuttons.
The issue is that when the linkbuttons are clicked they don't fire the ItemCommand event although they are clearly being correctly created and added to the header (there is some additional code to set the cssClass, text etc. and this works as expected.) The first column header in the repeater is set in the markup and the itemcommand event fires correctly on this one only. When the other column headers are clicked the repeater rebinds as programmed, but the columns are not dynamically re-generated.
Nightmare.ascx
<asp:repeater runat="server" id="rptReport" OnItemDataBound="rptResults_ItemDataBound" OnItemCommand="rptResults_ItemCommand" EnableViewState="true">
<headertemplate>
<table>
<tr runat="Server" id="TRDynamicHeader">
<th>
<!-- This one works -->
<asp:Linkbutton runat="server" CommandName="sort" commandArgument='<%# Eval("Name")%?' />
</th>
<!-- additional header cells get added dynamically here -->
</tr>
</headertemplate>
<itemTemplate>
<td><%# Eval("Name")</td>
...
</itemTemplate>
</asp:repeater>
Nightmare.ascx.cs
protected void PageLoad(object sender, eventArgs e){
if (! isPostback){
setupGui();//just binds dropdowns etc. to datasources
}
}
protected void btnRunReport_Click(...){
List<ReportLines> lstRep = GetReportLines();
rptReport.DataSource = lstRep;
repReport.DataBind();
}
protected void rptReport_ItemDataBound (...){
if (e.Item.ItemType == ListItemType.Header)
{
foreach (ListItem li in chbxListBusFuncs.Items)
{
if (li.Selected)
{
th = new HtmlTableCell();
lb = new LinkButton();
lb.CssClass = "SortColHeader";
lb.CommandArgument = li.Text.Replace(" ", "");
lb.CommandName = "sort";
lb.Text = li.Text;
th.Controls.Add(lb);
((HtmlTableRow)e.Item.FindControl("TRDynamicHeader")).Cells.Add(th);
}
}
}
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
//Row level customisations, totals calculations etc.
}
}
<!-- this only gets called when the 'hardcoded' linkbutton in the markup is clicked.
protected void rptReport_ItemCommand(object sender, Eventargs e){
lblDebug.Text = string.Format("Well? What's Happening? -> {0}:{1}", e.CommandName, e.CommandArgument.ToString());
}
(The only thing that can call the runreport routine is a single button on the page, not shown in the code snippet above.)</textarea></p>
<input type='hidden' name='ID[3]' value='82079' />
<input type='hidden' name='URL[3]' value='http://forums.asp.net/t/1472917.aspx' />
<input type='hidden' name='CAT[3]' value='Forms Data Controls' />
<input type='hidden' name='BOARD[3]' value='microsoft' />
<input type='hidden' name='P_DATE[3]' value='Sep 21, 2009 02:16 AM' />
<input type='hidden' name='RANDOM[3]' value='uck4OZUSh' />
<input type='hidden' name='REPLIES[3]' value='6' />
<input type='hidden' name='USER[3]' value='aziz' />
<p><input class=subject type='text' size='90' name='SUBJECT[3]' value='Forms Data Controls :: ValidationGroup causes button not to fire ItemCommand event' /><select name='INDEXED[3]'><option value='1' selected>UPDATE</option><option value='2'>DELETE</option></select>Sep 21, 2009 02:16 AM - Replies: 6 CAT: Forms Data Controls<a target=_blank href="http://forums.asp.net/t/1472917.aspx">View</a></p>
<p> <textarea rows=10 cols=100 name='POST[3]' onfocus='setSelRange(this, 0, 0)'/>
I have a page with a couple of RequiredFieldValidators, each in its own ValidationGroup. One of the RequiredFieldValidator controls is inside a Datalist and the submit button triggers the relevant DataList_ItemCommand. It works just dandy until I add the ValidationGroup to the button, at which point clicking on the button no longer fires the DataList_ItemCommand event. Here is the HTML
[Code]....
Note that the ValidationGroup name is there, and it is unique. No other ValidationGroups exist with that name. As it stands, this code does NOT fire the DataList_ItemCommand event, so no update occurs. However if I remove the ValidationGroup declaration from the Button control, the event fires properly.
Richard</textarea></p>
<input type='hidden' name='ID[4]' value='140242' />
<input type='hidden' name='URL[4]' value='http://forums.asp.net/t/1621410.aspx' />
<input type='hidden' name='CAT[4]' value='Forms Data Controls' />
<input type='hidden' name='BOARD[4]' value='microsoft' />
<input type='hidden' name='P_DATE[4]' value='Nov 09, 2010 10:04 AM' />
<input type='hidden' name='RANDOM[4]' value='5a4W7DeJ4' />
<input type='hidden' name='REPLIES[4]' value='4' />
<input type='hidden' name='USER[4]' value='aziz' />
<p><input class=subject type='text' size='90' name='SUBJECT[4]' value='Forms Data Controls :: update button in repeater footer wont fire event' /><select name='INDEXED[4]'><option value='1' selected>UPDATE</option><option value='2'>DELETE</option></select>Nov 09, 2010 10:04 AM - Replies: 4 CAT: Forms Data Controls<a target=_blank href="http://forums.asp.net/t/1621410.aspx">View</a></p>
<p> <textarea rows=10 cols=100 name='POST[4]' onfocus='setSelRange(this, 0, 0)'/>
i have a repeater with a button in the footer template which i want to be able to update any of the items that are added (update quantites/totals/delete the item). however the 'UpdateOrderDetails' event never fires when the button is clicked. here is the code within the repeater...
<ItemTemplate>
<tr>
<td>
<asp:CheckBox ID="chkDelete" runat="server" />
<asp:HiddenField ID="hidProduct_Key" runat="server" />
</td>
<td><asp:Literal ID="ltlProduct_Name" runat="server" /></td>
<td><asp:Literal ID="ltlProductOption_Size" runat="server" /></td>
<td><asp:Literal ID="ltlProductOption_Code" runat="server" /></td>
<td><asp:TextBox ID="txtQuantity" runat="server" /></td>
<td><asp:Literal ID="ltlItemPrice" runat="server" /></td>
<td><asp:Literal ID="ltlLineTotal" runat="server" /></td>
</tr>
</ItemTemplate>
<FooterTemplate>
<asp:Panel ID="pnlFooter" runat="server" Visible="False">
<tr id="trTotalExVAT" runat="server">
<td colspan="6">Total (ex VAT)</td>
<td><asp:Literal ID="ltlTotalExVAT" runat="server" /></td>
</tr>
<tr id="trVAT" runat="server">
<td colspan="6">VAT</td>
<td><asp:Literal ID="ltlVAT" runat="server" /></td>
</tr>
<tr>
<td colspan="5">
<asp:Button ID="btnUpdate" OnClick="UpdateOrderDetails" Text="Update" runat="server" />
</td>
<td>Delivery</td>
<td><asp:Literal ID="ltlDelivery" runat="server" /></td>
</tr>
<tr>
<td colspan="6">Total</td>
<td><asp:Literal ID="ltlTotal" runat="server" /></td>
</tr>
</asp:Panel>
</table>
</FooterTemplate>
the 'updateorderdetails' event in code behind is here
Public Sub UpdateOrderDetails(ByVal s As Object, ByVal e As RepeaterCommandEventArgs)
For Each objRepeaterItem As RepeaterItem In rptOrderDetails.Items
Select Case objRepeaterItem.ItemType
Case ListItemType.AlternatingItem, ListItemType.Item
Dim chkDelete As CheckBox = objRepeaterItem.FindControl("chkDelete")
Dim hidProduct_Key As HiddenField = objRepeaterItem.FindControl("hidProduct_Key")
Dim txtQuantity As TextBox = objRepeaterItem.FindControl("txtQuantity")
' check for deletion or update
If chkDelete.Checked Then
Me.Basket.RemoveProduct(hidProduct_Key.Value)
Else
' check for update
If IsNumeric(txtQuantity.Text) AndAlso CInt(txtQuantity.Text) >= 0 Then
Me.Basket.Products(hidProduct_Key.Value).Quantity = txtQuantity.Text
End If
End If
End Select
Next
' update order details
BindOrderDetails()
End Sub
but this procedure is never called when the button is clicked, so wondered what i need to do to get this working
</textarea></p>
<input type='hidden' name='ID[5]' value='49574' />
<input type='hidden' name='URL[5]' value='http://forums.asp.net/t/1522852.aspx' />
<input type='hidden' name='CAT[5]' value='Web Forms' />
<input type='hidden' name='BOARD[5]' value='microsoft' />
<input type='hidden' name='P_DATE[5]' value='Feb 07, 2010 06:01 AM' />
<input type='hidden' name='RANDOM[5]' value='OoKSV9VFH' />
<input type='hidden' name='REPLIES[5]' value='3' />
<input type='hidden' name='USER[5]' value='aziz' />
<p><input class=subject type='text' size='90' name='SUBJECT[5]' value='Web Forms :: ItemCommand not get fire of datalist in IE' /><select name='INDEXED[5]'><option value='1' selected>UPDATE</option><option value='2'>DELETE</option></select>Feb 07, 2010 06:01 AM - Replies: 3 CAT: Web Forms<a target=_blank href="http://forums.asp.net/t/1522852.aspx">View</a></p>
<p> <textarea rows=10 cols=100 name='POST[5]' onfocus='setSelRange(this, 0, 0)'/>
I have imagebutton inside datalist.....the problem is that onclick event of serverside not get executed for only IE ..but its work fine for mozzila....i m not getting what wrong in this code.
aspx code
<asp:DataList
ID="dlProduct"
runat="server"
CellPadding="5"
CellSpacing="5"
Width="300px"
OnItemCommand="dlProduct_ItemCommand"
>
<ItemTemplate>
<p>
<asp:Label
ID="lblName"
Visible="false"
runat="server"
Text='<%# Bind("ModelName") %>'
CssClass="style1"
>
</asp:Label>
</p>
<p>
<strong><span
class="style1">
MRP : Rs.
<asp:Label
ID="mrp"
runat="server"
Text='<%# Bind("mrp") %>'
CssClass="styles"
>
</asp:Label>
</span>
<br
/>
</strong>
</p>
<p>
<strong>
<span
class="style1">Price : Rs.</span>
<asp:Label
ID="PriceLabel"
runat="server"
Text='<%# Bind("price") %>'
CssClass="style1">
</asp:Label> <br
/> </strong>
</p>
<asp:Label
runat="server"
ID="lblQuantity"
Text=""
Font-Bold="true"
CssClass="style1"></asp:Label>
<asp:Textbox
ID="tbQuantity"
runat="server"
Width="22px"
Text="1"
CssClass="nutext"
Visible="false"
></asp:Textbox>
<img
src="images/buynow_btn.jpg"
width="144"
height="58"
runat="server"
/>
<asp:ImageButton
runat="server"
ID="btnAddToCart"
src="images/addtocart.jpg"
width="144"
height="81"
CommandName="AddToCart"
/>
<asp:Button
runat="server"
ID="Button1"
Text="Add to Cart"
CausesValidation="false"
CommandName="AddToCart"
/>
</ItemTemplate>
</asp:DataList>
CS code
protected void dlProduct_ItemCommand(object source,
DataListCommandEventArgs e)
{
Response.Write("hello");
Response.End();
}
View 1 Replies
Mar 26, 2010
Why would a button inside a Repeater not fire the Repeater's ItemCommand event? Is there a way to force it to do so? ViewState is Enabled. zn the code below, btnApprove and btnDelete are the buttons in question:
<asp:Repeater runat="server" ID="rpt1" onitemdatabound="rpt1_ItemDataBound" onitemcommand="rpt1_ItemCommand" >
<ItemTemplate>
<table width="100%" style="margin-bottom:6px;">
<tr>
<td>
<asp:CheckBox ID="chkSelected" runat="server" Text=" " TextAlign="Right"/> Select
<asp:Button ID="btnApprove" runat="server" Width="80px" Text="Approve" />
<asp:Button ID="btnDelete" runat="server" Width="80px" Text="Delete" />
</td>
</tr>
<tr>
<td align="right">
<asp:Label ID="lblCommentStatus" runat="server" Text="Label"></asp:Label>
</td>
</tr>
</table>
<table width="100%" style="margin-top:6px;">
<tr>
<td><asp:Label ID="lblAuthorName" runat="server" Text="Author: " Width="60px"></asp:Label></td>
<td><asp:TextBox ID="txtAuthorName" runat="server" Width="250px"></asp:TextBox></td>
<td style="padding-left: 30px;"><asp:Label ID="lblAuthorLocation" runat="server" Text="Location: " Width="70px"></asp:Label></td>
<td><asp:TextBox ID="txtAuthorLocation" runat="server" Width="250px"></asp:TextBox></td>
</tr>
</table>
Title: <asp:TextBox ID="txtTitle" runat="server" Width="640px" Enabled="False"></asp:TextBox>
Body: <asp:TextBox ID="txtBody" runat="server" Width="640px" TextMode="MultiLine" Height="60px" Enabled="False"></asp:TextBox>
<table width="100%" style="margin-top:6px;">
<tr>
<td><asp:Label ID="lblVotes" runat="server" Text="Votes: " Width="80px"></asp:Label></td>
<td><asp:Label ID="lblVotesCount" runat="server" Text="" Width="600px"></asp:Label></td>
</tr>
</table>
<hr style="margin-top:20px; margin-bottom:20px;" />
</ItemTemplate>
</asp:Repeater>
/// <summary>
/// Handles the ItemCommand event of the rpt1 control.
/// </summary>
/// <param name="source">The source of the event.</param>
/// <param name="e">The <see cref="System.Web.UI.WebControls.RepeaterCommandEventArgs"/> instance containing the event data.</param>
protected void rpt1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
var c1 = CommentRepository.GetById(Convert.ToUInt64(e.CommandArgument.ToString()));
if (e.CommandName == "approve")
{
c1.Approved = true;
c1.ApprovationUserId = WebAdminContext.RelatedUserId;
}
if (e.CommandName == "reject")
{
c1.Approved = false;
c1.ApprovationUserId = 0;
}
if (e.CommandName == "delete")
{
c1.Deleted = true;
c1.DeletionUserId = WebAdminContext.RelatedUserId;
}
if (e.CommandName == "restore")
{
c1.Deleted = false;
c1.DeletionUserId = 0;
}
CommentRepository.Update(c1);
ResetSubSequenceInfo();
BindList();
}
/// <summary>
/// Binds the list.
/// </summary>
private void BindList()
{
_Criteria = lcb1.GenerateCriteriaFromUI();
var sc1 = CommentRepository.Filter(
new FilteringOptions(
EntityListPager1.CurrentSubSequenceInfo,
null,
CommentRepository.GetCriteriaToFilterByTGID(CurrentEntityGEODEReference.GID).And(_Criteria)
)
);
// BIND
rpt1.DataSource = sc1.Items;
rpt1.DataBind();
EntityListPager1.BindToUI(sc1.Info);
}
View 2 Replies
Jan 24, 2016
[URL] how to handle item command event in above example?
View 1 Replies
Mar 19, 2010
I've got a GridView control with LinkButtons in different cells. Currently when someone clicks a link, it fires the ItemCommand passing the CommandName and the ID of the item the link is bound to. That all works fine. I need to modify it now to not use links anymore. It now needs to show a popup balloon with a link (styled to look like a button) and when the link is clicked, I want it to do the exact same thing. I'm sure there are several ways of doing this, but for time's and consistency's sake, I'm copying the method used from another page we have that is already doing this. It has a hidden DIV on the page with the link in it. When you hover over a link, javascript repositions the div and makes it visible.
So what I need to do is pass my CommandName and item ID to the javascript so that it can trigger the postback when they click that single link. I know this is not the only way to get to the end result, but what I want to do if possible, is still fire the GridView's ItemCommand and set he DataListCommandEventArgs' CommandName and CommandArgument properties. Can someone explain how, under normal circumstances, clicking the LinkButton in the GridView fires the ItemCommand? I know that the LinkButton's click event is forwarded to the GridView but what gets sent from the client side that let's the server know the link was clicked?
View 5 Replies
Nov 26, 2010
My repeater:
<asp:Repeater ID="rptrContacts" runat="server" OnItemCommand="rptrContact_ItemCommand" >
<div ID="itemTemplate>
<ItemTemplate>
<%# Eval("Name") %>
<%# Eval("Email") %>
<asp:LinkButton ID="lbtnEditContact" runat="server" CommandName="Edit" Text="Edit" CommandArgument='<%# Eval("ContactID") %>' />
<asp:Label ID="lblUpdateConfirm" runat="server" Text="Update Confirmed" Visible="false" />
</ItemTemplate>
</div>
<div ID="editTemplate runat="server" visibility="false">
Update your Info:<br>
Name: <asp:TextBox ID="txtName" runat="server Text="<%# Eval("Name") %>"/> <br>
Email: <asp:TextBox ID="txtEmail" runat="server Text="<%# Eval("Email") %>"/><br>
<asp:LinkButton ID="lbtnUpdateContact" CommandArgument='<%# Eval("ContactID") %>' CommandName="UpdateContact" runat="server" >Update</asp:LinkButton>
</div>
</asp:Repeater
and code for ItemCommand:
switch(e.CommandName)
{
case "Edit":
//make editTemplate div visible
HtmlGenericControl divEditContact = (HtmlGenericControl)e.Item.FindControl ("divEditContact");
divEditContact.Visible = true;
break;
case "Update":
Employee updateEmployee = new Employee
{
employeeName = txtName.Text:
employeeEmail = txtEmail.Text:
}
updateEmployee = API.UpdateEmployee(updateEmployee);
//display lblUpdateConfirm visible to True
// so user sees this confirm messge in the newly updated ItemTemplate
}
How can I access my lblUpdateConfirm and turn its Text state to visible from inside the ItemCommand, so that when the user sees the newly updated ITemTemplate, the label is showing the "Update Confirmed" message?
View 1 Replies
Mar 22, 2010
In my project when i click any button or linkbutton, it doesnt fire any event or doesnt postback.
It was working fine but now it hv problem like this.
I think i have changed some settings by mistake.
View 5 Replies
Nov 2, 2010
I have added the AutoPostBack = "true" attribute to the drop down list. It doesn't work.
<asp:DropDownList CssClass="dropDownList" ID="ddlBusinessUnit"
AutoPostBack="true" runat="server" Width="250px"
OnSelectedIndexChanged="ddlBusinessUnit_SelectedIndexChanged">
</asp:DropDownList>
code behind:
Protected Sub ddlBusinessUnit_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Response.Write("Hello")
End
How can I ensure that the event method is called?
View 1 Replies
Apr 9, 2010
I have a gridview with a onrowdeleting="SellersGridView_RowsDeleting" switch.
My method is:
[Code]....
Well, it seems that when I try to delete anything - nothing happens. I tried to change the first line to Response.Redirect("foo") just to check if the event itself is fired, and it turns out that it doesn't.
Here is my gridview control: [URL]
Here is my codebehind code: [URL]
View 5 Replies
Jan 15, 2011
i have a JQuery ui dialog box that opens up as a contact form when a link is clicked, which works fine, my problem is trying to submit the information.
When you click the send button it fires a button click event of another asp:button ive got hidden on the page...
the post back event fires and the page reloads but the asp:button click event doesn't not fire?
Heres my code:
asp:Button is as follows:
Code:
[code]....
View 11 Replies
Mar 3, 2010
I add linkbutton controls dynamically to a panel, this works fine, but I also add eventhandlers to them like this.. AddHandler mLink.Click, AddressOf mLink_OnClick But when I click the linkbutton links, the event never happend. I have one updatepanel wrapped around some panels. What could be wrong?
View 3 Replies
Sep 18, 2010
I have a multi view with 2 view in my page. when page is loading first view is set active. by click on a click I set active second view that contain AsyncFileUpload1. but UploadedComplete event doesn't fire. This control works outside of view correctly but into view doesn't work. I have to use multi view and this 2 view in my web page. what can I do?
View 9 Replies
Nov 28, 2010
The following code is my ASP.NET page :
<MdsMenu:MenuItem Text="Button" Href="#">
<asp:Button ID="Button1" runat="server" Text="Button 01" OnClick="Button_Click" />
<asp:Button ID="Button2" runat="server" Text="Button 02" OnClick="Button_Click" />
</MdsMenu:MenuItem>
I don't know why Button_Click event doesn't fire!
protected void Button_Click(object sender, EventArgs e)
{
Button senderButton = sender as Button;
Label1.Text = senderButton.ID.ToString();
}
MdsMenu:MenuItem is my custom WebControl. If I insert a Button control out of MdsMenu:MenuItem tag it works well but if I inserted it within MdsMenu:MenuItem tag it doesn't fire the concerned method. What's wrong with my code?
Edit:
Menu.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Security.Permissions;
using System.Collections;
using System.ComponentModel.Design;
using System.Drawing.Design;
using System.Web.UI.HtmlControls;
using System.IO;
namespace MenuServerControl
{
[AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
[DefaultProperty("MenuItems")]
[ParseChildren(true, "MenuItems")]
[ToolboxData("<{0}:Menu runat="server"> </{0}:Menu>")]
public class Menu : WebControl
{
#region Fields
private List<MenuItem> _MenuItems;
string _Direction
{
get
{
string direction = "";
switch (this.Direction)
{
case Directions.LeftToRight:
direction = "direction:ltr;";
break;
case Directions.RightToLeft:
direction = "direction:rtl;";
break;
default:
direction = "direction:rtl;";
break;
}
return direction;
}
}
string _AnimationDelay
{
get
{
if (AnimationDelay == null)
AnimationDelay = 1000;
return AnimationDelay.ToString().ToLower();
}
}
string _AnimationType
{
get
{
switch (this.AnimationType)
{
case AnimationType.Opacity_Height:
return "animation:{opacity:'show',height:'show'}";
case AnimationType.Opacity_Width:
return "animation:{opacity:'show',width:'show'}";
case AnimationType.Opacity:
return "animation:{opacity:'show'}";
case AnimationType.Height:
return "animation:{height:'show'}";
case AnimationType.Width:
return "animation:{width:'show'}";
case AnimationType.Height_Toggle:
return "animation: {height: 'toggle'}";
case AnimationType.Width_Toggle:
return "animation: {width: 'toggle'}";
default:
return "animation:{opacity:'show',height:'show'}";
}
}
}
string _AnimationSpeed
{
get
{
switch (this.AnimationSpeed)
{
case AnimationSpeed.Fast:
return "speed:'fast'";
case AnimationSpeed.Normal:
return "speed:'normal'";
case AnimationSpeed.Slow:
return "speed:'slow'";
default:
return "speed:'fast'";
}
}
}
string FloatStyle
{
get
{
if (Direction == Directions.RightToLeft)
return "float:right;";
else return "";
}
}
string _Main_ul_CssClass = "";
#endregion
#region Properties
public string Main_ul_CssClass
{
get
{
if (string.IsNullOrEmpty(_Main_ul_CssClass)) return "";
_Main_ul_CssClass = "class=" + _Main_ul_CssClass;
return _Main_ul_CssClass;
}
set
{
_Main_ul_CssClass = value.Trim();
}
}
public Directions Direction { get; set; }
public int? AnimationDelay { get; set; }
public AnimationType AnimationType { get; set; }
public AnimationSpeed AnimationSpeed { get; set; }
public bool DropShadow { get; set; }
public bool AutoArrows { get; set; }
[Category("Behavior")]
[Description("The menu collection")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[PersistenceMode(PersistenceMode.InnerDefaultProperty)]
public List<MenuItem> MenuItems
{
get
{
if (_MenuItems == null)
_MenuItems = new List<MenuItem>();
return _MenuItems;
}
}
public VerOrHor VerticalOrHorizontal { get; set; }
#endregion
#region Methods
public Menu()
{
DropShadow = true;
AutoArrows = true;
}
public override void RenderBeginTag(HtmlTextWriter writer)
{
writer.Write("<div id="" + this.ID + "" style="" + _Direction + " " + FloatStyle + "">");
}
public override void RenderEndTag(HtmlTextWriter writer)
{
writer.Write("</div>");
}
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
#region Adding Script & link Tags
HtmlGenericControl jquery = new HtmlGenericControl("script");
jquery.Attributes.Add("type", "text/javascript");
jquery.Attributes.Add("src", Page.ClientScript.GetWebResourceUrl(typeof(MenuServerControl.Menu), "MenuServerControl.JavaScriptFiles.jquery_1_4_3.js"));
jquery.EnableViewState = false;
Page.Header.Controls.Add(jquery);
HtmlGenericControl hoverIntent = new HtmlGenericControl("script");
hoverIntent.Attributes.Add("type", "text/javascript");
hoverIntent.Attributes.Add("src", Page.ClientScript.GetWebResourceUrl(typeof(Menu), "MenuServerControl.JavaScriptFiles.hoverIntent.js"));
hoverIntent.EnableViewState = false;
Page.Header.Controls.Add(hoverIntent);
HtmlGenericControl jquery_bgiframe_min = new HtmlGenericControl("script");
jquery_bgiframe_min.Attributes.Add("type", "text/javascript");
jquery_bgiframe_min.Attributes.Add("src", Page.ClientScript.GetWebResourceUrl(typeof(Menu), "MenuServerControl.JavaScriptFiles.jquery_bgiframe_min.js"));
jquery_bgiframe_min.EnableViewState = false;
Page.Header.Controls.Add(jquery_bgiframe_min);
HtmlGenericControl superfish = new HtmlGenericControl("script");
superfish.Attributes.Add("type", "text/javascript");
superfish.Attributes.Add("src", Page.ClientScript.GetWebResourceUrl(typeof(Menu), "MenuServerControl.JavaScriptFiles.superfish.js"));
superfish.EnableViewState = false;
Page.Header.Controls.Add(superfish);
HtmlGenericControl supersubs = new HtmlGenericControl("script");
supersubs.Attributes.Add("type", "text/javascript");
supersubs.Attributes.Add("src", Page.ClientScript.GetWebResourceUrl(typeof(Menu), "MenuServerControl.JavaScriptFiles.supersubs.js"));
supersubs.EnableViewState = false;
Page.Header.Controls.Add(supersubs);
if (Direction == Directions.LeftToRight)
{
HtmlGenericControl csslink = new HtmlGenericControl("link");
csslink.Attributes.Add("href", Page.ClientScript.GetWebResourceUrl
(typeof(Menu), "MenuServerControl.CSS.superfish.css"));
csslink.ID = "NavigationMenu";
csslink.Attributes.Add("type", "text/css");
csslink.Attributes.Add("rel", "stylesheet");
csslink.EnableViewState = false;
Page.Header.Controls.Add(csslink);
}
else
{
HtmlGenericControl csslink = new HtmlGenericControl("link");
csslink.Attributes.Add("href", Page.ClientScript.GetWebResourceUrl
(typeof(Menu), "MenuServerControl.CSS.RightToLeft superfish.css"));
csslink.ID = "NavigationMenu";
csslink.Attributes.Add("type", "text/css");
csslink.Attributes.Add("rel", "stylesheet");
csslink.EnableViewState = false;
Page.Header.Controls.Add(csslink);
}
if (this.VerticalOrHorizontal == VerOrHor.Vertical && this.Direction == Directions.RightToLeft)
{
HtmlGenericControl csslink01 = new HtmlGenericControl("link");
csslink01.Attributes.Add("href", Page.ClientScript.GetWebResourceUrl
(typeof(Menu), "MenuServerControl.CSS.RightToLeft superfish-vertical.css"));
csslink01.Attributes.Add("type", "text/css");
csslink01.Attributes.Add("rel", "stylesheet");
csslink01.EnableViewState = false;
Page.Header.Controls.Add(csslink01);
}
else if (this.VerticalOrHorizontal == VerOrHor.Vertical)
{
HtmlGenericControl csslink01 = new HtmlGenericControl("link");
csslink01.Attributes.Add("href", Page.ClientScript.GetWebResourceUrl
(typeof(Menu), "MenuServerControl.CSS.superfish-vertical.css"));
csslink01.Attributes.Add("type", "text/css");
csslink01.Attributes.Add("rel", "stylesheet");
csslink01.EnableViewState = false;
Page.Header.Controls.Add(csslink01);
}
#endregion
}
protected override void RenderContents(HtmlTextWriter output)
{
output.Write(CreateMenuHtmlTags());
}
StringBuilder CreateMenuHtmlTags()
{
if (this._MenuItems == null)
throw new Exception("تگ های مربوط به منو را کامل کنید");
StringBuilder Html = new StringBuilder("");
#region Add <Script>
if (String.IsNullOrEmpty(Main_ul_CssClass))
Html.Append("<script>$(document).ready(function() { $("ul.sf-menu").superfish({pathLevels: 1,");
else
Html.Append("<script>$(document).ready(function() { $("ul." + Main_ul_CssClass + "").superfish({ pathLevels: 1,");
Html.Append("delay:" + _AnimationDelay + ",");
Html.Append(_AnimationType + ",");
Html.Append(_AnimationSpeed + ",");
Html.Append("dropShadows: " + DropShadow.ToString().ToLower() + ",");
Html.Append(@"autoArrows: " + AutoArrows.ToString().ToLower() + "});});</script>");
#endregion
if (string.IsNullOrEmpty(Main_ul_CssClass) && VerticalOrHorizontal == VerOrHor.Vertical)
Html.Append("<ul class="sf-menu sf-vertical sf-js-enabled sf-shadow" id='sample-menu-1'>");
else if (String.IsNullOrEmpty(Main_ul_CssClass))
Html.Append("<ul class="sf-menu sf-js-enabled sf-shadow" id='sample-menu-1'>");
else
Html.Append("<ul class="" + Main_ul_CssClass + "" id='sample-menu-1'>");
foreach (MenuItem item in _MenuItems)
{
if (item == null) continue;
if (item.SubMenuItems != null && item.SubMenuItems.Count > 0)
{
Html.Append("<li" + item.li_CssClass + ">");
Html.Append("<a href="" + item.Href + "">" + item.Text.Trim() + "</a>");
ParseSubMenuItems(ref Html, item);
Html.Append("</li>");
}
else if (item.SubMenuItems != null)
Html.Append("<li" + item.li_CssClass + "><a href="" + item.Href + "">" + item.Text.Trim() + "</a></li>");
}
Html.Append("</ul>");
return Html;
}
void ParseSubMenuItems(ref StringBuilder Html, MenuItem menuItems)
{
if (menuItems == null) return;
Html.Append("<ul " + menuItems.ul_CssClass + " style="display: none; visibility: hidden;">");
foreach (var item in menuItems.SubMenuItems)
{
if (item == null) continue;
MenuItem Sub_MenuItem = item as MenuItem;
WebControl webControl = item as WebControl;
if (Sub_MenuItem != null)
{
if (Sub_MenuItem.SubMenuItems != null && Sub_MenuItem.SubMenuItems.Count > 0)
{
Html.Append("<li" + Sub_MenuItem.li_CssClass + ">");
Html.Append("<a href="" + Sub_MenuItem.Href + "">" + Sub_MenuItem.Text.Trim() + "</a>");
ParseSubMenuItems(ref Html, Sub_MenuItem);
Html.Append("</li>");
}
else if (Sub_MenuItem.SubMenuItems != null)
Html.Append("<li" + Sub_MenuItem.li_CssClass + "><a href="" + Sub_MenuItem.Href + "">" + Sub_MenuItem.Text.Trim() + "</a></li>");
}
else if (webControl != null)
{
Html.Append("<li>");
webControl.EnableViewState = true;
this.Controls.Add(webControl);
webControl.EnableViewState = true;
StringBuilder sb = new StringBuilder();
sb.Append("<div>");
using (StringWriter sw = new StringWriter(sb))
{
using (HtmlTextWriter textWriter = new HtmlTextWriter(sw))
{
webControl.RenderControl(textWriter);
}
}
sb.Append("</div>");
Html.Append(sb.ToString());
Html.Append("</li>");
}
}
Html.Append("</ul>");
}
#endregion
}
}
MenuItem.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections;
namespace MenuServerControl
{
[DefaultProperty("SubMenuItems")]
[ParseChildren(true, "SubMenuItems")]
[TypeConverter(typeof(ExpandableObjectConverter))]
public class MenuItem : INamingContainer
{
#region Fields
ArrayList _SubMenuItems;
string text = "";
string href = "#";
string _ul_CssClass = "";
string _li_CssClass = "";
#endregion
#region Properties
[Description("متن منو آیتم")]
[DefaultValue("")]
[NotifyParentProperty(true)]
public string Text
{
get
{
return text;
}
set
{
text = value;
}
}
[DefaultValue("#")]
[Description("<a /> href attribute")]
[NotifyParentProperty(true)]
public string Href
{
get
{
return href;
}
set
{
href = value;
}
}
[DefaultValue("")]
[Description("<ul /> css class")]
[NotifyParentProperty(true)]
public string ul_CssClass
{
get
{
if (string.IsNullOrEmpty(_ul_CssClass)) return "";
_ul_CssClass = " class="" + _ul_CssClass + """;
return _ul_CssClass;
}
set { this._ul_CssClass = value.Trim(); }
}
[DefaultValue("")]
[Description("<li /> css class")]
[NotifyParentProperty(true)]
public string li_CssClass
{
get
{
if (string.IsNullOrEmpty(_li_CssClass)) return "";
_li_CssClass = " class="" + _li_CssClass + """;
return _li_CssClass;
}
set { this._li_CssClass = value.Trim(); }
}
[Category("Behavior")]
[Description("The MenuItems collection")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[PersistenceMode(PersistenceMode.InnerDefaultProperty)]
public ArrayList SubMenuItems
{
get
{
if (_SubMenuItems == null)
_SubMenuItems = new ArrayList();
return _SubMenuItems;
}
}
#endregion
}
}
You can download the project from here.
View 1 Replies
Jun 9, 2010
TextBox doesn't fire TextChanged Event on IE 8, AutoPostback is true
View 6 Replies
Jan 12, 2011
I have my ReorderList setup, and it seems to work. It doesn't give me any errors, and it allows drag/drop of the entries.
BUT, it never updates my datasource. I have tried putting breakpoints on the update events, both on the reorder list, but also on the datasource, none fires.
What could i possibly do wrong, to achieve this?
Here's my code, just in case:
[Code]....
[Code]....
View 3 Replies
Aug 14, 2010
I have a small website where I want to display a confirmation dialog after clicking on a button.
When you click the confirmButton the dialog appears. Then you can choose between Yes or No to either continue with the PostBack or to return.
Problem: The first time you get into the site all works fine. But after you click Yes to continue with the PostBack, no click event will be triggered anymore.
Here is some code.
[Code]....
View 8 Replies
May 13, 2010
I have an repeater with two buttons. I tried two different ways to make a click event on the two buttons. Neither of the two ways function. They do both the same. No errors but the repeaters content disappear.
My repeater:
[Code]....
As you can see, onbtnForumGroupsDebateListEditDebateAdm I tried to use the repeaters ItemCommand
the code for this here:
[Code]....
Then I tried to do a simple OnCommand instead
The code for this is:
[Code]....
I tried to make a "run to curser" and can see, that I don't get into the functions.
View 5 Replies
Dec 9, 2010
I create a dropDownList in code-behind, in selectIndexChange of another dropDownList, and add this new dropDownList to page using a placerHolder, everthing its ok, but new dropdownlist selectIndexChange event dont fire!
code of dropDownList creation
dropDown = new DropDownList();
dropDown.AutoPostBack = true;
dropDown.ID = idSubistema;
dropDown.Width = 400;
dropDown.CssClass = "controltext";
dropDown.DataValueField = "IDNivel";
dropDown.DataTextField = "NIVEL";
dropDown.EnableViewState = true;
dropDown.DataSource =
DBLibray.DefinitionIndicadores.spSelect_FillCombosWithNivelByIdParent(
ref dataConnector,
Convert.ToInt32(idSubistema));
dropDown.DataBind();
dropDown.SelectedIndexChanged += new EventHandler(indexChange);
//dropDown.PreRender += new EventHandler(dropDown_PreRender);
placeHolderForCombos.Controls.Add(new LiteralControl("<div>"));
placeHolderForCombos.Controls.Add(lb);
placeHolderForCombos.Controls.Add(new LiteralControl("<br>"));
placeHolderForCombos.Controls.Add(dropDown);
placeHolderForCombos.Controls.Add(new LiteralControl("</div>"));
placeHolderForCombos.Controls.Add(new LiteralControl("<br>"));
View 2 Replies
Mar 8, 2010
A little confused on something. I have a User Control in a master page. In the User Control there are image buttons. when I try to wire any click event even to say update a label in the User Control itself, nothing gets updated.
It is as if the postback is not handled at all.
What I want to do is click the image button in the User Control and then change a value in the master page. This could happen a few ways but for example it could update a public property or a control itself like a textbox or label.
View 4 Replies
Oct 26, 2010
Here is my situation: I have a overview of subscriptions that look simple:
Active (bool), ID (int), StartDate (datetime) and MaxUsers (int).
I've put this in a Gridview and it renders nicely.
Now everything is simply in ItemTemplates and are formatted.
Now a new feature: In the Gridview active should be a checkbox and when clicked on it, it should (de)activate the subscription. Or simply said, Active status is updated. Now me being a simpleton thinks:
[Code]....
and the cs:
[Code]....
But! the event doesnt get fired. Now I've searched with google and also through this forum and every time I get the answer: autopostback on true or use commandname. Now for this little feature I think the commandname use in combi with rowbound is overkill for such a little thing.
Now I hope I'm just missing something because this would be really nasty and stupid to make it so complicated. I like the autopostback and oncheckchanged combination because it logical, but why doesnt it work?
View 3 Replies
Feb 2, 2010
I have a modalpopup that i have opening on a radiobutton selection. That works great, opens when it should and closes when you click cancel. BUT i have the following on my cancel button event that is not firing
[Code]....
I also have a button event for my "OK" button and that works great, but my cancel event doesnt seem to fire or work. Maybe the ClearSelection() is not what i need..
I want to clear the radiobutton if they cancel out of the ModalPopUp so they can make a new selection, since its a required field.
View 2 Replies
Jun 18, 2010
how do i fire the itemdatabound event for a repeater control which is nested inside a another repeater control
code is in vb.net
View 3 Replies
Feb 7, 2010
I have imagebutton inside datalist.....the problem is that onclick event of serverside not get executed for only IE ..but its work fine for mozzila....i m not getting what wrong in this code.aspx code
<asp:DataList
ID="dlProduct"
runat="server"
[code]...
View 3 Replies