I have a complex object. For example a SCHOOL object that contains a collection of PERSON object. How can I use the ObjectDataSource control with a FormView and flatten the complex object? An example display would be to display the school name and comma separate the students on the page. Is this possible?
Basically as the title of this thread states, I have a FormView that has a GridView inside it and my ObjectDataSource that populates this grid cannot access the Grid.
The Control Id needs to be the name of the Grid I want to access, however through the 'wizard' the Control parameter drop down cannot 'see' the grid I need, only the FormView that is in.
I have tried numerous ways to get round this and am struggling now..
I've tried the following...
ControlID="FormView.GridView1"
ControlID="FormView.FindControl("GridView1")
ControlID="<%= GetNameOfGrid %>"
and numerous other attempts that also failed that I now cant remember...
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)
I have an ObjectDataSource that I want to perform updates using a business entity i.e. Type="Object"). Since the values for the entity are within a user control, I have stored a reference to the control in Session and in the updating event, set the new instance to the value of the entity from the user contol property (which also pulls values from the form viaother properties of the control):
Protected Sub MasterDataSource_Updating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ObjectDataSourceMethodEventArgs) Handles MasterDataSource.Updating Dim entity As New Login() Dim accountControl As AccountInfo = TryCast(Session("AccountCtrl"), AccountInfo) entity = accountControl.Entity e.InputParameters.Add("entity", entity) End Sub
My question is, how can I get the update method to pass this entity to the update method in my BLL class? It seems the Update method requires an ID or reference to the original object to use in determining whether any changes have taken place, but I don't really want to do this. In other words, I just want to use the Update event on my ObjectDataSource to pass my entity to the method ("Update") I set as a property and then let this business method handle the update of the data. Shown below, is the BLL update method I want to call:
Public Overloads Function Update(ByVal entity As Login) If entity Is Nothing Then Throw New ArgumentNullException("entity") End If MyBase.Update("UpdateLogin", entity.Username, entity.Password, entity.FirstName, entity.LastName, entity.Role, entity.Region, _ entity.Email, entity.Title, entity.TierID, entity.Street, entity.City, entity.State, entity.Zip, entity.Mobile, entity.Phone, entity.Fax) End Function
When I try to call this as it stands now, I get an error: ObjectDataSource 'MasterDataSource' could not find a non-generic method 'Update' that has parameters: ID, entity. Previously, I'd set up a long list of parameters of basic data types (string, int, boolean), but this is rather cumbersome and I was hoping to use an entity for this (FYI, I also got the same type of error when I tried this approach, but with the ID as the last parameter in the list). Perhaps what I'm doing here is atypical to how the ODS is normally used?? Has anyone done something like this successfully?
I am using VS 2008 SP1. My also have included CSS Friendly adapter [URL] in my project ( I mentioned this because my GridView Empty data template is not showing when using GridView's CCS Friendly adapter). I have a GridView and a DetailsView. When a record in GridView is selected its details information is shown in the Details View. Type of Data source I am using is ObjectDataSource. My Insert and Update methods works perfectly. It is only the Delete method that is passing null values to the underlying object delete method. My source codes for both the UI, BLL, DAL is shown below
I have an ObjectDataSource which refers to a class in my business logic. I have added this code
[Code]....
to a method within the class. That is the method specified as the UpdateMethod of the ObjectDataSource. The ObjectDataSource is attached to a FormView. I am seeing the following behaviour: Before I add the attribute, the update function works as expected; With the attribute, if the user has TestRole then the update works as expected; With the attribute, if the user doesn't have TestRole then the update method does not execute, but no exception is thrown. So, the functionality is restricting access to the method exactly as it should. However, no exception is thrown when access is denied.
As an aside, I have tried adding the attribute to the class rather than to the specific method. With that in place, I do see an exception (if the user does not have TestRole) as soon as execution goes anywhere near the class. This cannot be my final solution though as different methods in the class need different restrictions. Obviously, I don't want the update to fail silently, I need the exception to be thrown so that I can handle it.
I have a series of classes that loosely fit the following pattern:
public class CustomerInfo { public int Id {get; set;} public string Name {get; set;} public class CustomerTable { public bool Insert(CustomerInfo info) { /*...*/ } [code]...
I've a form view with various field in edit and an object datasource where I've defined my update parameters that my update method takes. I've set some of the fields in the edit template to read only because I want them to display.
Unfortunately they are getting passed in as update parameters somehow to my objectdatasource. So, it is generating update parameters that causes my method to not match.
How can I exclude these parameters from getting sent to update?
using an ObjectDataSource and a FormView.In the FormView I have a set of controls. When the FormView is in edition, I have in particular a ComboBox and a TextBox which are related as follows: when the ComboBox takes some special values, the TextBox must be read only or not. or the moment I get that behaviour as follows: the ComboBox triggers a postback when its selected item is changed and in the 'OnPreRender' of my page I get the value of the ComboBox and update the Readonly property of the TextBox accordingly.What I don't like with this method is that I don't use my object model which is consumed by the ObjectDataSource. The problem is simply that when the FormView is in edition there does not seem to be a way to get the instance of the object which is being edited. The 'DataItem' is null and I haven't found any way to automatically build a new object from the values in the controls to pass it to my business layer. Of course I could do the whole job myself by getting explicitly all the values in the controls, but that's not nice.
I'm using a FormView which has odsMain as the datasource. I am also using a dropdownlist which is being populated with objectdatasource odsddl.
I'd like to set the selectedvalue of the dropdownlist with the value contained in odsMain (the current record value for it). Is there any way this can be done?
I am working on an application and am attempting to use Linq with and ObjectDataSource but I only want to display/update 50% of the fields that are in the corresponding table. It appears to me that for this to work correctly, I need hidden fields on my form for all of the data fields from the table that the user cannot access. Is this the only way to do this? I have the following in my update method of my ODS:
[Code]....
The problem is, only the fields that appear on the form have data in them.
I have an ObjectDataSource giving me data similar to: OrderNumber OrderDate OrderValue OrderItems The first three are simple data types and the last has multiple occurrences of another class: OrderLineNumber OrderItem OrderQuantity The ObjectDataSource will only contain one row (which might make things simpler). So, there will be one OrderNumber, OrderDate and OrderValue; and then several occurrences of OrderItems (each containing OrderLineNumber, OrderItem and OrderQuantity).
I am displaying OrderNumber, OrderDate and OrderValue in the FormView - that work's fine, as expected. I have placed a GridView within the FormView and am failing miserably to get it to bind to OrderItems. I have tried the obvious things like specifying "odsWhatever.OrderItems" as the DataSourceID for the GridView, but to no avail.
I have a FormView bound to an ObjectDataSource that is bound to a business logic object. The business logic object has a Readonly field called "Id". When I try to update the formview, I get the following error message: The 'Id' property on the type specified by the DataObjectTypeName property in ObjectDataSource 'ObjectDataSourceNewsArticle' is readonly and its value cannot be set. How do I get the ObjectDataSource or the FormView to recognise that the id field is readonly, and to not try to update it?
I'm having a problem with a FormView control that I have bound to an ObjectDataSource. The problem is that the FormView control is not automatically filled in with the public properties of the object linked by an ObjectDataSource control when I select refresh schema. Everything compiles and I can add fields manually, but there are a lot of properties in the class and I do not want to deal with adding all the fields by hand. It's not the end of the world of course if I have to add them manually, but I'm bothered more by the fact that it doesn't act the other formviews.
Has anyone ever experienced a problem like this? I have other objectdatasource controls with other formviews that properly refresh their schemas. I noticed that in the objectdatasource control that is giving me problems, the DataObjectTypeName field is not automatically set as it is in the others. However, after adding it manually it still doesn't refresh the schema. I'm using Visual Studio 2010. Defined in .aspx page:
[Code]....
The SPFModuleBLL class contains the GetModule2() method which is shown here:
I was able to get the formview bound to the objectdatasource, it works great for the first record, but when i select the next record it gives me error below is all my code, if there is something else that i need to post .
public DataTable GetBrokers(bool? hasImport=null) { SqlCommand cmd = new SqlCommand("usp_GetBrokers"); if (hasImport.HasValue) cmd.Parameters.AddWithValue("@hasImport", hasImport); return FillDataTable(cmd, "brokers"); }
When the form loads I get this error:
ObjectDataSource 'srcBrokers' could not find a non-generic method 'GetBrokers' that has no parameters.
Is it my optional parameter that is causing the problem? How can I workaround this? Is it possible to have optional parameters with declarative ASP.NET code?
My Business Logic Layer has AddItem method that add's to Items table in db along with an entry in Balance table.AddItem method uses two TableAdapters Items & Balance. Both these have corresponding Business Objects as Item and Balance.
Here is the AddItem method :
[Code]....
ASPX Page with DetailsView & ObjectDataSource
[Code]....
Now executing this page generates error as
ObjectDataSource 'ObjectDataSource2' could not find a non-generic method 'AddItem' that has parameters: _item, _balance, ItemName, GroupId, CategoryId, AuId, Rate, TotalStrScale, OffsStrScale, OffsAE [code]...
I couldn't come up with a good subject. I have a simple ASP.NET 3.5 form. If you follow the numbered comments, I explain how I am stepping through the code when I run the page in debug mode. Both of the below functions are methods declared in the code behind file of the page, both are in the same _Default class. The ManagersListBox is declared in the Default.aspx page. Why is it that in the context of the GetSubordinates, the ManagersListBox is null? It's as if it disappears for a moment and then reappears after returning from the GetSubordinates method. Obviously the solution is to parameterize GetSuborindates, but that is not my concern. I am trying to learn how ASP.NET works and I would really like to understand why I am seeing this behavior "disappearing object".
I am binding dropdown list using Object data source. I got an error like this
"ObjectDataSource 'objDSStatus' could not find a non-generic method 'GetIssueAllowedStatusByCategoryIDStatusIDandUserType' that has parameters: IssueCategoryID."
My code is as follows .aspx
< asp:DropDownList ID="ddlStatus" runat="server" DataSourceID="objDSStatus" DataTextField="IssueStatusName" DataValueField="IssueStatusID"> < /asp:DropDownList> < asp:ObjectDataSource ID="objDSStatus" runat="server" TypeName="DA"></asp:ObjectDataSource> .cs private void Bind(int IssueCategoryID, int IssueStatusID, int UserType) { ddlStatus.Items.Clear(); objDSStatus.SelectMethod = "GetIssueAllowedStatusByCategoryIDStatusIDandUserType"; objDSStatus.SelectParameters.Clear(); objDSStatus.SelectParameters.Add("IssueCategoryID", IssueCategoryID.ToString()); objDSStatus.SelectParameters.Add("IssueStatusID", IssueStatusID.ToString()); objDSStatus.SelectParameters.Add("UserType", UserType.ToString()); objDSStatus.DataBind(); ddlStatus.DataBind(); } DA.cs public List<IssueStatus> GetIssueAllowedStatusByCategoryIDStatusIDandUserType(int IssueeCategoryID, int IssueStatusID, int UserType) { List<IssueStatus> issueStatusList = new List<IssueStatus>(); }
I'm a starting C# programmer and I'm experiencing the following problem.I've created a dataset in Visual Studio With a table for persons making use of two table adapters, one for selecting all persons and one for selecting one person at a time filtered by the personID (Guid). This is a seperate project of my solution. After that I created a new project for the Business Logic Layer
private PersonenTableAdapter personenAdapter = null; protected PersonenTableAdapter Adapter {get....} [System.ComponentModel.DataObjectMethodAttribute (System.ComponentModel.DataObjectMethodType.Select, true)] public DAL.Testdatabase.PersonenDataTable GetPersonen() {...} [System.ComponentModel.DataObjectMethodAttribute (System.ComponentModel.DataObjectMethodType.Select, false)] public DAL.Testdatabase.PersonenDataTable GetPersonenByID(Guid ID) {...} [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)] public bool updatePersoon(string Voornaam, string Achternaam, string Geslacht, string Adres, string Huisnr, string Postcode, string Plaats, string Telnr, string GSM, string BSN, DateTime? CreateDate, string CreatedBy, DateTime? LastModifiedDate, string LastModifiedBy, bool? Actief, DateTime? DatumInactief, Guid ID) {...} When issueing the Update method using a detailsview with an Objectdatasource i get the following error. ObjectDataSource 'ObjectDataSource1' could not find a non-generic method 'updatePersoon' that has parameters: Voornaam, Achternaam, Geslacht, Adres, HuisNr, Postcode, Plaats, Telnr, GSM, BSN, CreateDate, CreatedBy, LastModifiedDate, LastModifiedBy, Actief, DatumInactief, original_ID.
i have an instance of ObjectDataSource with specified update method. But on update i have an old values(previously set in gridview) in method - they are not updating.
I have to display the contacts in gridview.I'm using objectdatasource. I have given the select method of objdatasource below:
Code:
Imports Microsoft.VisualBasic Imports system.Data Imports System.Data.SqlClient Imports System.Collections Imports System.Collections.Generic Public Class Contactmanager Dim conn As New SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("localConnectionString").ToString)......