Forms Data Controls :: GridView RowCommand Does Not Fire For ImageButton ButtonField
Jan 18, 2011
I have a gridview with a ButtonField. When I leave the button type as the default LinkButton, clicking that button fires the RowCommand and everything works as expected. As soon as I change the button type to ImageButton and assign an ImageUrl, clicking that button does not fire the RowCommand.
I have a usercontrol that has a gridview. I have a few boundcolumns and then a buttonfield. The buttonfield needs to have a confirm message box and then proceed to the RowCommand event. In the RowCommand, I'm trapping for a CommandName called "DeleteFile".
The weird thing is everything works correctly with deleting a row if the onclick code is not registered. I'm using attributes.add for this.
I know there is another option for using a templatefield and then a button rather than a buttonfield. But, I've noticed that this approach causes a postback that effects another usercontrol on my page. It thinks I've submitted it which can either cause it to error out or potentially sumbit more information which I want to avoid.
I have a GridView attached to an ObjectDataSource (returning a DataTable) in a UserControl. The code is really simple. Data comes down fine when the page is first rendered. When I click on Select or Delete (inside TemplateFields), RowCommand is supposed to fire but it doesn't, the page goes straight to Page_Load. I literally have 0 other event handlers that are set on this control and everything else in the codebehind shouldn't even fire if it's a postback. Also on postback, the Select and Delete buttons disappear. It looks like the TemplateFields are still there but they're empty. The data fields (all of two columns) post back fine.
I have a treeview on the left panel and the gridview in the content page. Both the treeview and the gridview bind to the same datasource and have the same functionality. For instance, clicking employer in the treeview and clicking the employer link in the gridview take you to the same page. All I want is when I click the employer link in the gridview, I want the gridview row command event to call the selectednodechanged event of the treeview, so that the treenode for employer has the selected node style and performs the function of hte selectednodechanged. i have tried treeview.nodes[0].select but this does not fire the selectednodechanged event.
I am creating custom Gridview for dynamic Columns (getting columns from Database) and addting textboxes to headers for filtering data. I set the "EnableViewstate=False".
My problem is when I click on Filter Button it is not firing RowCommand event.
I am trying to insert a buttonfield at the end of the datagrid. I am using the following code. However, it is getting inserted at the beginning of the datagrid.
I know there are a number of posts along this topic, but everything I find seems to not have a final solution or else I'm just not getting what the solution is. I have a simple GridView with a ButtonField and a BoundField. I'm having the same problem most of the other posts seem to have; I can retrieve the BoundField value easy enough in the RowCommand subroutine, but I can't figure out how to get the value of the ButtonField. Here is the code I'm trying to use:
[Code]....
sAddr is being set to the correct address value, but sName is set to an empty string no matter what I try. The GridView HTML all works correctly, including showing the names from my bound data table on the button text. I can use to retrieve the ButtonField text value?
I want to have two asp:buttonfield buttons in one cell. I have to be able to access the Gridview.SelectedRow. And I don't seem to be able to add a asp:buttonfield to a templatefield.
A bit new to buttonfields in gridviews - Did a bit of research and most of the stuff I came up with had the gridviews with data bound like so :
[Code]....
private void BindGridControl() {//method created so that the binded gridview can allow paging controls DataTable dt = new DataTable(); try { /*Gridview requires another column either a checkbox or a hyperlink column that * can drill down another level and load a page where user can edit the data/cheque * Will place an exception here that will prompt a window to notify users that there were no rows returned */ GridView1.Visible = true; sqlConn.Open(); sqlSearch = "select store_nbr as [Store number],date as Date,data_type as [Data type],acct_1 as [Account 1], "; sqlSearch += "amt_1 as [Amount 1],acct_2 as [Account 2],amt_2 as [Amount 2], "; sqlSearch += "acct_3 as [Account 3], amt_3 as [Amount 3], cheque_nbr as [Cheque Number], "; sqlSearch += "cheque_amt as [Cheque Amount], gst_hst as [GST/HST], qst as [QST],comments as [Comment] "; sqlSearch += "from SimpData where store_nbr = '" + StoreNum + "'"; sqlCmd = new SqlCommand(sqlSearch, sqlConn); SqlDataAdapter adapter = new SqlDataAdapter(sqlCmd); adapter.Fill(dt); if (dt.Rows.Count > 0) { //if there are rows returned bind the datasource to the gridview GridView1.DataSource = dt; GridView1.DataBind(); } else { //label control notifies user that there are no rows found lblResults.Text = "Search returned no rows"; } My ButtonFields<Columns> <asp:ButtonField ButtonType="Button" CommandName="Select" HeaderText="Select item" ShowHeader="True" Text="Select1"> <ControlStyle Width="50px" /> <HeaderStyle Font-Size="XX-Small" /> </asp:ButtonField> <asp:ButtonField ButtonType="Button" CommandName="Select" HeaderText="Select item" ShowHeader="True" Text="Select2"> <ControlStyle Width="50px" /> <HeaderStyle Font-Size="XX-Small" /> </asp:ButtonField> <asp:ButtonField ButtonType="Button" CommandName="Select" HeaderText="Select item " ShowHeader="True" Text="Select3"> <ControlStyle Width="50px" /> <HeaderStyle Font-Size="XX-Small" /> </asp:ButtonField> </Columns>
I have a gridview with a column for tracking numbers. I would like for the user to be able to click the tracking number in that column and it open another browser window to the site with the tracking information. I have tried Hyperllinkfield and I cannot get it to open the website.
I have 2 gridviews in an aspx file. The First one is master grid, and the second one is detail grid. (such as Customer and it's Invoices) First, I load data into master grid. I use FireBug and notice that every row has it's row id, such as:
Then, in master grid, I select a buttonfiled in a row to load the second gridview.Every thing alright, the second grid has it's row id But The master grid lost all row id that I dont know the reason why?
I am getting error as Procedure 'storedproc2' expects parameter '@NewMessage', which was not supplied.Basically in this I am taking the text in one cell and add sometext to it and update in the next cell of the row.
I have several Gridviews that display data from the same table. They are separate for visual effect (Different characteristics). If I select on an item from any grid they can all execute the same code (Show Details).I'm using a row command GridViewCommandEventArgs.Is it possible/How can you get the gridview name from the row command so that I can use just one subroutine.
Sub GV_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs) If e.CommandName = "select" Then Dim index As Integer = Convert.ToInt32(e.CommandArgument) Dim row As GridViewRow = ????.Rows(index)
When "btnEdit" is clicked, "RowCommand" event is raised where I want to the catch row index of the row which was set to Edit mode.The Reason for doing this is ......I am using paging with page size = 4. When I click the fourth row (suppose), page is postedback and then the user has to scrolldown to get to the edit row
In my database table I have ID,FirstName,LastName,Address fields.I have bound the FirstName,LastName in Gridview with Eval Method.But have not bound the address coz I m not dispalying address.Now there are textboxes below the gridview which gets filled when I click the edit button in gridview with values in the gridvoew row.I am getting the FirstName and LastName (using find control in rowcommand) but not the address.How can I get the address
I'm trying to fire the RowCommand event on a DataGrid control. I've previously done that, but not in this precise case.
Actually I'm working on someone else code so I can't really change the structure of his page excepted if it's really necessary.
The code of the page is heavy, so I've summarized the problem in a small project and the page behaves the same way too.
Basically I have a GridView which I bind to a DataSet. According to those data, I sometimes need to add, at the end of a row, a "Details" button (a LinkButton).
By pushing this button, I want to show a second GridView containing those details.
Let's add to this that the columns number of the first GridView is variable, those LinkButton need to be added dynamically.
The first GridView is generated without any problem and when my mouse is over one of the LinkButton, I can see that the link is something like "javascript:__doPostBack('dataGridView$ctl02$lnkDetail','')". When I click on this link and debug step by step : Page_Init, Page_Load, OnPrerender, RowDataBound but no RowCommand, and I don't know why!
In the exemple, I've explicitly set the EnableViewState to true from what I've read here and there, but nothing's changed.
I have gridview+sqldatasource. In gridview i have button DELETE. But i want on click this button for some rows execute DELETE command other rows UPDATE. I did:
[Code]....
@index - DeleteParametrs in sqldatasource.
But DELETE works and DELETEVIRTUAL doesn't. Then i insert sourceMain.Delete() in rowcommand after sourceMain.DeleteCommand ... But it's doesn't help me.
It has to do with the RowCommand 'Cancel'. When clicking on my Edit button for a row, the GridView puts the row into edit mode without a problem (I have no code for the Edit command, I let the control do everything).
Once in Edit mode, if I click the Cancel button (again, I have no code handline this RowCommand, I let the control handle it (like i do with many other GridViews)) I get the following exception:
"System.InvalidOperationException: Databinding methods such as Eval(), XPath(), and Bind() can only be used in the context of a databound control."
I'm having a hard time figuring this one out, i got a gridview with a sqldatasource that is loading its content, to custom columns a ButtonField and a Boundfield, both are loading in page load event,When i click the ButtonField its trigerring the rowcommand event but i can't figure out how to read the value of the cells wich i need to get for the next step of the program.Here what i got so far :- The aspx
[Code]....
- the aspx.vb
[Code]....
I'm getting the correct index and command name but i cant get the button value or bound field value either.
i am using a grid view . i have added a linkbutton in cell[0]. when clicking on this butoon the below event is working.. actually i tried to get the cell[1].text... but not getting any cell values except cell[0].text... get the cell[1].text value.
GridViewRow row = (GridViewRow)(((Repeater)e.CommandSource).NamingContainer); Repeater _rpt1 = row.Cells[8].FindControl("rptReg") as Repeater;
error:
Unable to cast object of type 'System.Web.UI.WebControls.Button' to type 'System.Web.UI.WebControls.Repeater'.
is there a way i can have the below code in `OnRowCommand` event using GridView?
actually i am trying to delete the row from the gridview control and when the user click on it and i am grabbing the mulitple ids and passing to SP and update the table and `databind the gridview`
GridViewRow row = gv.SelectedRow; Repeater _rpt = gv.Rows[e.RowIndex].Cells[8].FindControl("rptReg") as Repeater; Repeater _rpt1 = gv.Rows[e.RowIndex].Cells[9].FindControl("rptVisitor") as Repeater; foreach (RepeaterItem item in _rpt.Items) { TextBox _txt = item.FindControl("txtId") as TextBox; TextBox _txt1 = item.FindControl("txtName") as TextBox; //update db }