Forms Data Controls :: Event Of Child GridView Is Getting Fired Also At The Parent FormView?
Jul 21, 2010
since APS.Net 4.0 I have a curious problem with an event.
There is a FormView and inside of the EditItem there is a GridView. In the Footer of the GridView I put Controls for inserting records.
But when I fire a markup defined RowCommand of that GridView then the same event is getting fired for the Parent FormView. First I had 'Insert' as the CommandName and so I was getting the Error that my FormView had to be in insert mode to insert a record. Then I changed the RowCommand of the GridView to 'xxx' and I got also the RowCommand 'xxx' at the RowCommand eventhandler of the Parent FormView.
The project was migrated from .Net 3.5 a few days ago, but nothing was manually changed in the code/markup. And the problem was not there with the "old" framework.
[Code]....
Of course, I could simply change the CommanName of the LinkButton e.g. to 'InsertChild' but I would like to know:
Is this a known change or a bug of ASP.Net 4.0?
View 1 Replies
Similar Messages:
Apr 8, 2010
i have the following scenario: one formview. when in editmode there is a child formview linked to the other by a column value. i need to take the value of one of the values of parent formview controls and set it to a textbox of child formview in insert mode. I wish to know which event should I use in codebehind to bind both controls? (that escenario will have paging and must keep the binding as if it was master detail)
View 9 Replies
Aug 23, 2010
i want to access the child datagrid controls from parent datagrid command event.
View 4 Replies
Dec 1, 2010
In nested gridview, i am finding some problem, i want to show child Grid headers in Parent Gridview. Can anyone tell me that how it is possible? Its very urgent. Waiting for quick response.
View 1 Replies
Dec 14, 2010
I have a parent gridview which has a child gridview in the itemsTemplate. Both are binded to different SqlDataSources. I can successfully update and delete rows in the child gridview. After updating in the child gridview, some related data in the parent gridview are not updated automatically. So i have placed ParentGridview.Databind() in the rowupdated event of child gridview. But it doesnt look working.
How can i accomplish this?
View 4 Replies
Oct 25, 2010
I'm lost. I have a sub gridview in a gridview. In subGridbiview I have a button. How do I can clicking the button and get values outside the gridview? The subgridview not present the events ...
------------------------Gridview 1------------------------------------------
| cell(0) | cell(1) | Cell(2)| Cell(3 - ITEM TEMPLATE) | -
| | | | # # # SubGridview1 ######### -
! x1 | Y1 | Z1 | # Cell(0) ! Button #-
! | | | ######################-
------------------------------------------------------------------------------
| | | | # # # SubGridview1 ######### -
! x2 | Y2 | Z2 | # Cell(0) ! Button #-
! | | | ######################-
------------------------------------------------------------------------------
how do I click on the child gridview and get the values of the parent gridview? no events in the child gridview no number indexrow on the parent gridview I'm lost.
View 6 Replies
Jun 15, 2010
I have a nested gridview containing gridviews: gvMaster(Parent) and gvAlternate(Child)
If I select a row in gvAlternate is there a way for me to find out what gvMaster row it is under? I want to highlight the selected gvAlternate row and the gvMaster row that it is under.
[code]....
I can get a certain set of rows of gvAlternate only by referencing which gvAlternate control set I want to access: this is based on the gvMaster.Rows and then using the FindControl and id name:
GridView
gv = (GridView)this.gvMaster.Rows[aRowNumber].FindControl("gvAlternate");
Therefore, it is true that a set of rows in a nested gridview is tied to a specific row in its master gridview, the question is does the child gridview know which set it's connected to or does it's master know if a childset has been selected?
View 2 Replies
Jan 29, 2011
I am using a collapsible child gridview inside a parent gridview. When I click on the expand image, the data to displayed is put up correctly, however when I make some changes in the child gridview, they seem to be lost!! That is, the changes do not get reflected in the database.
View 3 Replies
Jul 15, 2010
I am currently trying to figure out the best way to handle a data formatting issue. I have a stored procedure that pulls back basically all the data I need, but using a gridview doesn't really give me what I need.
For example...currently the gridview displays data like:
Date1 ProjectCode1 Hours ApproveChkBox
Date1 ProjectCode2 Hours ApproveChkBox
Date1 ProjectCode3 Hours ApproveChkBox
Date2 ProjectCode1 Hours ApproveChkBox
...
I would like to be able to display the information like:
[code]....
Is there anyway to do this using a nested gridview? Or is there a proper way to display this type of format?
View 1 Replies
Apr 20, 2010
I have a very simple asp.net page, just some buttons and one GridView on it. The logic is a user click the QUery button,then the button click event was trigured to populate the gridview with data queried from database via LINQ. for a user friendly interface, in RowDataBound event, I visit every row, change a boolean value into checkbox represention. But it seem that the RowDataBound run twice, because the checkboxs were inserted twice for every row in one cell. so why? the source code snippet as follow:
protected void btnSelect_Click(object sender, EventArgs e)
{
RetiredEmployeeDataContext db = new RetiredEmployeeDataContext();
GridView1.DataSource = db.ENTUserAccountSelectAll();//userAccounts;
GridView1.DataBind();
}
protected void GridView1_OnRowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
CheckBox chkActive = new CheckBox();
chkActive.Checked = ((ENTUserAccount)e.Row.DataItem).IsActive;
chkActive.Enabled = false;
e.Row.Cells[5].Controls.Add(chkActive);
}
}
View 9 Replies
Feb 25, 2016
With reference to this article [URL].... I'm trying to access parent gridview datakey in child gridview edit row event. Code below.
protected void grvSubmittedExpensePerMachine_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView grvSubmittedExpensePerMachine = sender as GridView;
grvSubmittedExpensePerMachine.EditIndex = e.NewEditIndex;
string site=this.grvSubmittedExpenses.DataKeys[((row.NamingContainer as GridView).NamingContainer as GridViewRow).RowIndex].Value.ToString();
[code]....
View 1 Replies
Apr 21, 2010
Why wasn't my GridView's RowDataBound event fired? I have a masterpage on whick i have a query button, and I have a content page on which i have a customized GridView(named cgvEmployees,derived from GridView). The logic is when user click the button, the button click event triggered that search the underlying database and populate the GridView.
Everything runs great except that RowDataBound event isn't triggered. Because I have to change some cells' representations in RowDataBound event handler. I have surfed so much pages to find the answer but failed. Below is what i have already done:
1. set the autoeventwireup to true;
2. i have a cgvEmployees.bind() sentence in the button click event handler;
3. i have OnRowDataBound="cgvEmployees_OnRowDataBound" in the content page GridView tag attribute
by the way, the database query is coded by Linq Dynamic Query (please google 'dynamic Linq').
void Master_QueryButton_Click(object sender, EventArgs e)
{
RetiredEmployeeDataContext db = new RetiredEmployeeDataContext();
NameValueCollection nvcQueryKeyValue = getNVCQueryKeyValue();
Expression<Func<RetiredEmployee, bool>> searchPredicate = getLambdaExpr(nvcQueryKeyValue);
IQueryable<RetiredEmployee> retireds = db.RetiredEmployees;
Expression expr = Expression.Call(typeof(Queryable), "Where",
new Type[] { typeof(RetiredEmployee) }, Expression.Constant(retireds), searchPredicate);
IQueryable<RetiredEmployee> query = db.RetiredEmployees.AsQueryable().Provider.CreateQuery<RetiredEmployee>(expr);
List<RetiredEmployee> employeeList = new List<RetiredEmployee>(query);
List<RetiredEmployeeEO> employees = new List<RetiredEmployeeEO>();
foreach (RetiredEmployee employee in employeeList)
{
RetiredEmployeeEO employeeEO = new RetiredEmployeeEO();
employeeEO.MapEntityToProperties(employee);
employees.Add(employeeEO);
}
cgvEmployees1.ListClassName = typeof(RetiredEmployeeEOList).AssemblyQualifiedName;
cgvEmployees1.LoadMethodName = "LoadFromQuery";
cgvEmployees1.LoadMethodParameters.Clear();
cgvEmployees1.LoadMethodParameters.Add(employees);
cgvEmployees1.DataBind();
}
protected void cgvEmployees1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//Add the edit link to the action column.
HyperLink editLink = new HyperLink();
if (((BasePage)this.Page).ReadOnly)
{
editLink.Text = "View";
}
else
{
editLink.Text = "Edit";
}
editLink.NavigateUrl = "employee.aspx" + EncryptQueryString("id=" + ((RetiredEmployeeEO)e.Row.DataItem).ID.ToString());
if(e.Row.Cells[0].Controls.Count==0)
e.Row.Cells[0].Controls.Add(editLink);
//Add checkbox to display the isactive field.
CheckBox chkActive = new CheckBox();
chkActive.Checked = ((RetiredEmployeeEO)e.Row.DataItem).liveOrDead;
chkActive.Enabled = false;
if(e.Row.Cells[24].Controls.Count==0)
e.Row.Cells[24].Controls.Add(chkActive);
if (((RetiredEmployeeEO)e.Row.DataItem).gender.Equals((byte)1))
e.Row.Cells[2].Text = "Male";
else
e.Row.Cells[2].Text = "Female";
if (((RetiredEmployeeEO)e.Row.DataItem).retiredOr.Equals((byte)1))
e.Row.Cells[14].Text = "Retired1";
else
e.Row.Cells[14].Text = "Retired2";
if (((RetiredEmployeeEO)e.Row.DataItem).birthday.Equals("1753-01-01"))
e.Row.Cells[3].Text = "";
if (((RetiredEmployeeEO)e.Row.DataItem).dayToEmployed.Equals("1753-01-01"))
e.Row.Cells[6].Text = "";
if (((RetiredEmployeeEO)e.Row.DataItem).dayRetired.Equals("1753-01-01"))
e.Row.Cells[7].Text = "";
if (((RetiredEmployeeEO)e.Row.DataItem).dayParty.Equals("1753-01-01"))
e.Row.Cells[13].Text = "";
if (((RetiredEmployeeEO)e.Row.DataItem).daytoassign.Equals("1753-01-01"))
e.Row.Cells[17].Text = "";
}
}
View 22 Replies
Dec 20, 2010
I have a Gridview which contains templated column that has 5 checkboxes in it. When you click on one checkbox, I want to uncheck the other 4.
I am using the Item Template for this. I don't want the user to have to Select a row, before clicking on the checkboxes. Here is my non-working code to uncheck the other checkboxes. I realize it's not "SelectedRow" that I want since there's no selected row, so how do I find the row containing the checkbox that fired off CheckChanged?
[code]....
View 2 Replies
Apr 10, 2010
I have a nested formview. I need to set a value for a textbox when I'm in insert mode from parent formview which is editmode.
View 4 Replies
Nov 8, 2013
I have followed your Nested level gridview and found it working, but i want add a button in the child element(from your example i will have a btn in Product grid and it should get contact_id (parent datakey value as well) ),as i need to update in database.
View 1 Replies
May 7, 2015
I am working in Asp.net 4.5. I need to create a grid as like below, I am struggling to make the merging cells and make it as multi header row by combining all the cells...
Is there any sample to make gridview like this.... I need to do this on codebehind. I browse through the internet and found couple of sample but those are not having the header like i posted. I am little confused about making full header as merged cells....
View 1 Replies
Aug 5, 2010
I've got a gridview that returns student order history which works just fine. It pulls the StudentId from a hidden field on page load. I have a link button that ADDS AN ORDER when clicked. It calls a stored procedure, inserts the record, then rebinds the gridview and displays the new record at the top of the list.
Problem is when I go to EDIT it, i get this error... "The GridView 'GridViewOrderHistory' fired event RowEditing which wasn't handled." But the interesting thing is the error doesn't occur if I close the browser and reload the page and then click on that new record that was created. Obviously I'm missing something in my code when the new order is created. Here are the 2 subs involved in the process.
[Code]....
View 8 Replies
Oct 28, 2010
So I have a GridView control with autogenerated column set to true, it also has autogenerated Edit and Delete buttons, sorting and paging, and also I am binding this same gridview to multiple data sources at runtime. All is working well.
Now I am adding a dynamically generated footer row at runtime. This footer row will allow users to add new record regardless which data source it binds to. So it is working as well except there's a small bug I couldn't figure out why. It's when I navigate to the last page of the gridview, if the rows on the last page is less than the page size, for example, I have page size 10 and the rows in last page is 9, then when I click the 'Add' linkbutton, the Add event does not fire, instead, it fill the last page with additional blank rows, that means if the last page has 5 rows, it will fill 5 blank rows below, if it has 9 rows, it will fill 1 blank row below. Then if you click the add again, it will work. If the last page already has 10 rows then, it works just fine.
Below is the code I used to dynamically add footer row:
[Code]....
View 9 Replies
May 7, 2015
how can i checked the checkbox in parentGridview whenever i checked a checkbox in childGridview?
View 1 Replies
May 7, 2015
I am binding Gridview using json (first Gridview),which have some column with linkbutton. I want to bind other gridview(second Gridview) using json on click of Linkbutton inside first gridview . how to fire json on linkbutton click event ?
View 1 Replies
Dec 20, 2010
I am populating the gridview on the basis of listbox selection . However, I am setting the datasource in the click event after listbox entry. When i am trying to update any record in the gridview this error gets thrown because the datasourceid from the aspx page has been removed. Code for reference -
protected void btn_save_Click(object sender, EventArgs e)
{
ArrayList list = new ArrayList();
foreach (object o in ListBox2.Items)
{
list.Add(o);
}
string str2 = null, str, host;
string str1 = "SELECT SYSTEMNAME, DATETIME, PDOWNTIME, UDOWNTIME, SYSDOWNMINS, REASON FROM PLANNED_DOWNTIME where ";
host = Convert.ToString(list[0]);
str2 = " ( SYSTEMNAME like '" + host + "'";
for (int i = 1; i < list.Count; i++)
{
host = Convert.ToString(list[i]);
str2 = str2 + " or SYSTEMNAME LIKE'" + host + "'";
}
str = str1 + str2 + " )";
string connectstring = "Data Source=SRCPA035\ovops;Initial Catalog=reporter;Persist Security Info=True;User ID=sa;Password=ril123";
DataTable dt = new DataTable();
SqlConnection connection = new SqlConnection(connectstring);
try
{
connection.Open();
SqlCommand sqlCmd = new SqlCommand(str, connection);
SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCmd);
sqlDa.Fill(dt);
if (dt.Rows.Count > 0)
{
GridView1.DataSource = dt;
GridView1.DataBind();
}
GridView1.DataSource = SqlDataSource1;
}
catch (System.Data.SqlClient.SqlException ex)
{
string msg = "Fetch Error:";
msg += ex.Message;
throw new Exception(msg);
}
finally
{
connection.Close();
}
}
View 6 Replies
Mar 3, 2014
I have nested gridviews, in the outer grid I am displaying the question and in the inner grid 4 options are displayed in radiobuttons. I have kept Lock Answer button inside Item Template in inner gridview , so this button is coming with each and every question and when i click on Lock Answer button in front of any question, its saving the corresponding answer in the database. For ex, if there are 10 questions this button is coming with all the questions, all the questions are on single page and all are multiple choice. Now everything is working mine, my requirement is that I need on 1 common Lock Answer button at the bottom of the page and not with all the questions. And when I click on that common button it should run for all the questions that are displayed on the screen at should fetch and update each unique answer corresponding to that question in the database. Below is my code:
<asp:GridView ID="gvouter" runat="server" GridLines="None" AutoGenerateColumns="False"
AllowPaging="false" OnRowDataBound="gvouter_RowDataBound" Width="100%" OnRowCommand="gvouter_RowCommand"
OnPageIndexChanging="gvouter_PageIndexChanging" >
<PagerSettings Position="Top" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
[code]...
View 1 Replies
Nov 17, 2010
If the grid column is clicked to sort i dont want to retireve data agian, i can get it from viewstate, but i dont know if that triggered the post back or if the ImageButton on the page triggered it
View 5 Replies
Jan 5, 2011
I have a page on which everything is loaded dynamically.
There is a Gridview (AutoGenerateColumns=true) and in the RowDataBound I check every column for a boolean datatype. If found I add a checkbox (autopostback=true) to the cell and register the CheckedChanged event.
The problem is, that I only get the CheckedChanged event, if I reload the grid in Page_Load:
protected void Page_Load(object sender, EventArgs e) {
LoadGrid();
}
But this is very expensive and causes that the db request will be executed twice. If I changed the code to what I want:
protected void Page_Load(object sender, EventArgs e) {
if (!this.IsPostBack)
loadGrid();
}
I get no CheckedChanged event.
Is there a possibility to get:
- Adding a Checkbox in RowDataBound
- Only "LoadGrid()" if it is no PostBack
- Getting the CheckedChanged event of the relevant row
View 2 Replies
Jan 25, 2010
I have problem with gridview sorting. I am using online example to sort a grid view. see the link [URL] but I always got an error "The gridview fired sorting event without handle" on this statement "helper.ApplyGroupSort();"
<table width="100%">
<tr>
<td colspan=3><asp:Label id="category_name" Runat="server"
ForeColor="#ff0000" Font-Bold=true /></td>
</tr>
<tr>
<td colspan="3" align="center" width="100%">
<asp:GridView ID="dg_drawings"
runat="server" AutoGenerateColumns="False" EnableViewState="False" CellPadding="5" CellSpacing="0" Width="90%"
>
<Columns>
<asp:BoundField DataField="Description"
SortExpression="Description" />
<asp:BoundField DataField="sub_description"
SortExpression="sub_description" />
<asp:BoundField DataField="drawing_id" InsertVisible="False"
ReadOnly="True"
SortExpression="drawing_id" />
<asp:BoundField DataField="DRAWING_DESCRIPTION"
SortExpression="DRAWING_DESCRIPTION" />
<asp:BoundField DataField="DWG_URL" SortExpression="DWG_URL" />
</Columns>
</asp:GridView>
</td>
</tr>
</table>
Here is my C# code
public partial class listDrawings : System.Web.UI.Page
{
admin _admin = new admin();
private GridViewHelper helper;
int categoryid = 0;
protected void Page_Load(object sender, EventArgs e)
{
if (Convert.ToString(Session["logged_in"]) == "1")
{
ph_header.Controls.Add(LoadControl("../controls/builder_header.ascx"));
}
else
{
ph_header.Controls.Add(LoadControl("../controls/header.ascx"));
}
/*if (Convert.ToString(Session["details_hit"]) != "1")
{
_admin.add_page_hit("Standard Details");
Session.Add("details_hit", "1");
}
*/
string categoryidStr = Request.QueryString["categoryid"];
string category = Request.QueryString["category"];
//int categoryid = 0;
if (categoryidStr != null)
{
categoryid = Convert.ToInt32(categoryidStr);
}
category_name.Visible = true;
category_name.Text = category + " Drawing Details";
get_category_drawings(categoryid);
}
protected void get_category_drawings(int categoryid)
{
OracleConnection myConn;
OracleCommand myCmd;
if (categoryid == 3)
{
myConn = new OracleConnection(ConfigurationManager.AppSettings.Get("oracle"));
myCmd = new OracleCommand("DRAWINGS.GET_STAR_SUB_DRAWINGS");
myCmd.CommandType = CommandType.StoredProcedure;
myCmd.Connection = myConn;
myCmd.Parameters.Add(new OracleParameter("iCATEGORY", OracleDbType.Int32, ParameterDirection.Input)).Value = categoryid;
myCmd.Parameters.Add(new OracleParameter("iSUB_CATEGORY", OracleDbType.Int32, ParameterDirection.Input)).Value = 0;
myCmd.Parameters.Add(new OracleParameter("oDRAWINGS", OracleDbType.RefCursor, ParameterDirection.Output));
}
else
{
myConn = new OracleConnection(ConfigurationManager.AppSettings.Get("oracle"));
myCmd = new OracleCommand("DRAWINGS.GET_STAR_DRAWINGS");
myCmd.CommandType = CommandType.StoredProcedure;
myCmd.Connection = myConn;
myCmd.Parameters.Add(new OracleParameter("iCATEGORY", OracleDbType.Int32, ParameterDirection.Input)).Value = categoryid;
myCmd.Parameters.Add(new OracleParameter("oDRAWINGS", OracleDbType.RefCursor, ParameterDirection.Output));
}
try
{
myConn.Open();
this.dg_drawings.DataSource = myCmd.ExecuteReader();
dg_drawings.DataBind();
helper = new GridViewHelper(this.dg_drawings);
string[] cols = new string[2];
cols[0] = "Description";
cols[1] = "sub_description";
helper.RegisterGroup(cols, true, true);
helper.ApplyGroupSort();
}
catch (OracleException ex)
{
if (categoryid == 3)
{
_admin.send_email("resources/listDrawings.aspx", "DRAWINGS.GET_STAR_SUB_DRAWINGS", ex.Message);
}
else
_admin.send_email("resources/listDrawings.aspx", "DRAWINGS.GET_STAR_DRAWINGS", ex.Message);
Response.Redirect("~/error.aspx");
}
finally
{
myCmd.Dispose();
myConn.Close();
myConn.Dispose();
}
}
}
View 5 Replies