Forms Data Controls :: OnItemCommand Doesn't Fire In DataList?
Feb 18, 2011
I have a DataList in an UpdatePanel. I'm using a PopupControlExtender for the UpdatePanel. On the DataList I have an OnItemCommand wich doesn't fire and I cann't figure out why.
I have a datalist that loops thru cart items. Within the datalist template I call a user control that has a small form that gets repeated for each item. When this control is called outside of the datalist, the form submits fine, but when called within the datalist the button has no event action. I've tried adding an event handler to ItemDataBound of the datalist, but still no event action. How can I get my form to submit?
I have a datalist in my page that has a LinkButton at the beginning of each row that, when clicked, fires the Itemcommand ("select"). There is no issue with this as it works as it should:
[Code]....
But I also thought it would be good if the user could simply click anywhere in the datalist to expand the item and show based on the SelectedItemTemplate. So, I thought, the cleanest would be to add a function in the code behind that adds a click event to the Panel "panItem" that clicks the above mentioned LinkButton like this (fires in Page_PreRender):
[Code]....
Here is where the problem comes in. This works great in IE but not FF3.6 (havent tested it with older version of FF). In FF, I get a JS error saying "dlMapDB_ctl00_btnItemFigNumber is not defined" for the first row, "...ctl01..." for the second row, etc. So the IDs are correct based on the markup (which makes sense since it works in IE).
This is the problem. My datalist, which connects to an Objectdatasource (I implemented custom paging) becomes populated with data only half of the time. When I go to the aspx page which contains that datalist (from another page), sometimes, the datalist fully loads, but sometimes only the header shows up. The header just contains hard-coded text whereas the body (itemtemplate portion) contains things that are binded to the objectdatasource. I thought I would mention this since the problem might have something to do with how things in asp.net bind.
The strange part of this is that when I was testing and debugging within VWD 2010, the datalist loaded fully everytime and I had no issues. When I placed my files on the IIS web server, this is when the problems started happening.What could the problem be? The speed of the IIS web server vs VWD's "internal server"? My page_load, init_load, etc methods are empty for this aspx page. The datalist is solely handled by the objectdatasource_selecting method. Should I explicit call something from one of those early lifecycle methods to ensure proper datalist loading?
i have two nested gridview inside an update panel. there is a button called btnPhoneEdit inside the child grid view. when the button gets clicked, it do cause partial post back as expected but it fails to invoke btnPhoneEdit_Click.
here is how my grid view looks like and how i add my custom data source to both parent and child grid view. [Code]....
I have a datalist and want the results paged I have written a pager.ascx page and have an aspx and aspx.cs page to display the results. I have a stored procedure to pull the data out of the database and a class to talk between the stored procedure and presentation controls I have the pager being displayed when the results get over the limit I have set to 10 in the web.config file but when i click on the next link to display the next page of results it doesn't do anything. my aspx page is
<uc1:Pager ID="topPager" runat="server" Visible="False" /> <asp:DataList ID="newsList" runat="server" CssClass="List" align="center"> <ItemStyle CssClass="ItemList" /> <ItemTemplate> <h2><%# Eval("Title") %></h2> <p>Posted <%# Eval("Date") %></p> <p><%# Eval("News").ToString().Replace(" ", "<br />") %></p> </ItemTemplate> </asp:DataList> <uc1:Pager ID="bottomPager" runat="server" Visible="False" /> my aspx.cs page is protected void Page_Load(object sender, EventArgs e) { // Retreive page from the query string string page = Request.QueryString["Page"]; if (page == null) page = "1"; // How many pages of posts int howManyPages = 1; // pager links format string firstPageUrl = ""; string pagerFormat = ""; //DataAccess.GetNews returns a DataTable object containing news data which is read into datalist newsList.DataSource = DataAccess.GetNews(page, out howManyPages); // Bind the data to the data source newsList.DataBind(); // have the current page as interger int currentPage = Int32.Parse(page); // Display pager controls topPager.Show(int.Parse(page), howManyPages, firstPageUrl, pagerFormat, false); bottomPager.Show(int.Parse(page), howManyPages, firstPageUrl, pagerFormat, true); } my pager.ascx page is <p> Page <asp:Label ID="currentPagelabel" runat="server" /> of <asp:Label ID="howManyPageLabel" runat="server" /> | <asp:HyperLink ID="previousLink" runat="server">Previous</asp:HyperLink> <asp:Repeater ID="pagesRepeater" runat="server"> <ItemTemplate> <asp:HyperLink ID="hyperlink" runat="server" Text='<%# Eval("Page") %>' NavigateUrl='<%# Eval("Url") %>' /> </ItemTemplate> </asp:Repeater> <asp:HyperLink ID="nextLink" runat="server">Next</asp:HyperLink> </p> my pager.aspx.cs page is using System; // Simple struct that represents a (page number, url) association public struct PageUrl { private string page; private string url; // Page property definition public string Page { get { return page; } } // Url property definition public string Url { get { return url; } } // Constructor public PageUrl(string page, string url) { this.page = page; this.url = url; } } // The pager control public partial class UserControls_Pager : System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) { } // Show the pager public void Show(int currentPage, int howManyPages, string firstPageUrl, string pageUrlFormat, bool showPages) { // Display paging controls if (howManyPages > 1) { // make the pager visable this.Visible = true; // Display the current page currentPagelabel.Text = currentPage.ToString(); howManyPageLabel.Text = howManyPages.ToString(); // Create the Previous link if (currentPage == 1) { previousLink.Enabled = false; } else { previousLink.NavigateUrl = (currentPage == 2) ? firstPageUrl : String.Format(pageUrlFormat, currentPage - 1); } // Create the Next link if (currentPage == howManyPages) { nextLink.Enabled = false; } else { nextLink.NavigateUrl = String.Format(pageUrlFormat, currentPage + 1); } // Create the page links if (showPages) { // The list of pages and their URLs as an array PageUrl[] pages = new PageUrl[howManyPages]; // Generate (page, url) elements pages[0] = new PageUrl("1", firstPageUrl); for (int i = 2; i <= howManyPages; i++) { pages[i - 1] = new PageUrl(i.ToString(), String.Format(pageUrlFormat, i)); } // Do not generate a link for current page pages[currentPage - 1] = new PageUrl((currentPage).ToString(), ""); // Feed the pages to the repeater pagesRepeater.DataSource = pages; pagesRepeater.DataBind(); } } } } my class file is // Retreive the list of news posts public static DataTable GetNews(string pageNumber, out int howManyPages) { // Get a configured DbCommand object DbCommand comm = GenericDataAccess.CreateCommand(); // Set the stored procedure name comm.CommandText = "GetNews"; // create a new parameter for page number DbParameter param = comm.CreateParameter(); param.ParameterName = "@PageNumber"; param.Value = pageNumber; param.DbType = DbType.Int32; comm.Parameters.Add(param); // create a new parameter for products per page param = comm.CreateParameter(); param.ParameterName = "@PostsPerPage"; param.Value = PlatiumMindProductionsConfiguration.PostsPerPage; param.DbType = DbType.Int32; comm.Parameters.Add(param); param = comm.CreateParameter(); param.ParameterName = "@HowManyPosts"; param.Direction = ParameterDirection.Output; param.DbType = DbType.Int32; comm.Parameters.Add(param); // Execute the stored procedure and saven the results in a DataTable DataTable table = GenericDataAccess.ExecuteSelectCommand(comm); // Calculate how many pages of posts and set the out parameter int howManyPosts = Int32.Parse(comm.Parameters["@HowManyPosts"].Value.ToString()); howManyPages = (int)Math.Ceiling((double)howManyPosts / (double)PlatiumMindProductionsConfiguration.PostsPerPage); // return the page of posts return table; } my stored procedure is ALTER PROCEDURE [dbo].[GetNews] (@PageNumber INT, @PostsPerPage INT, @HowManyPosts INT OUTPUT) AS -- Declare a new table DECLARE @News TABLE (RowNumber INT, NewsID INT, Title NVARCHAR(50), Date DATETIME, News NVARCHAR(MAX)) -- Populate the table with the complete list INSERT INTO @News SELECT ROW_NUMBER() OVER (ORDER BY NewsID desc), NewsID, Title, Date, News FROM News -- return the total number of posts SELECT @HowManyPosts = COUNT(NewsID) FROM News -- extract the request page of posts SELECT NewsID, Title, DATE, News FROM @News WHERE RowNumber > (@PageNumber - 1) * @PostsPerPage AND RowNumber <= @PageNumber * @PostsPerPage
I'm having some real problems trying to do this. In simple, a table shows a list of rooms with details of the room in each column, extracted from a database. The there is a button in the repeater, which is supposed to tell me what I clicked on in a new label. However the OnItemCommand just doesn't seem to be working.
[Code]....
Right now I'm just trying to get it to work, so that when I press the button, it causes the label to say "It works". But it just doesn't want to work.
I am building a query tool which displays the results in a dataGrid. when the results are displayed (buttonColumn) it should allow the user to click a row and execute another function. the columns selected in my query are not always the same name but it is user defined, therefore i am not able to define the columns in the ASP page, but insted am doing it in the C# class behind. When the table is generated it does have the button columns but when clicked it does a postback and it does not execute the function defined in the OnItemCommand tag.
I have a nested listview (orders with products)I want to add functions to update products and option to add new products update func works fine. wheni try to insert new record, itemcommand and iteminserting events are not firing. Im registering dynamic script using the below code
imgPicker.Attributes.Add("onclick", "LoadLookupScreen(" + clientIDs + ")");without the above code, itemcommand event works fine. when i add this script register itemcommand event was not firing
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
im using an update panel and my web form consists of textboxs and combo box, my problem is that when i click the button save for the first time, my page simply postbacks and the event save wouldnt fire, click it the second time and poof save will execute.. I notice that it is caused by my dropdown box and textbox autopostback function, i need to set this to true since i need to execute another function that will disable the dropdown when the textbox is filled and vice versa,set this to false and save will function normally..any ideas how to fix this?
The problem is that i have a search page. Access Database holding the information. I have a Access Datasource on the page with a Datalist to show the data. I need to find a way on setting it up to says "Sorry no results found" when the is no results. i am unsure on how to do this though.
I've some really strange behaviour with a simple ASP.NET Button. Here's my code:
[Code]....
For some reason the first time I click this button, the code is beeing fired. When login credentials are wrong, a message shows up. THen, the user inserts the right credentials. After clicking the 'cmdLogin' button, nothing happens and the old (wrong) values are beeing filled in inside the textboxes. This behaviour occured to me after switching to ASP.NET 4.0.
I am trying to dynamically load query form as a user control and build a sql statement based on user selection. I have a dropdownbox for Tablename, FieldName, ConditionalOperators and Value Field. Once the user makes a choice and causes a postback I loose my QueryForm (UserControl) and the selection Changed event never gets fired. I tried reloading the QueryForm on Page Init, still no luck.