Forms Data Controls :: Trying To Use Dynamic Object In A Databinding Tag
Sep 18, 2010
im trying to use dynamic object in a databinding tag , it gives me error that the property does not exists even though i can see all the properties there in the vs debug mode
here is what im trying to do:
C#:
my method signature:
public static dynamic MyMethod()
ASPX:
in control itemtemplate:
<%# MyMethod().SomeProperty %>
if also trite the other way:
C#:
public static object MyMethod()
ASPX:
<%# ((dymanic)MyMethod() ).SomeProperty%>
But i dont know why it cant resolve the properties , even though i can see them when the databinder control throws an exception (its working fine outside the databinder tag (ie normal aspx tags <% %>)
Again, I am new to the ASP.NET world, and I come from a Windows Forms background. I'm working with an ObjectDataSource that retrieves a collection of business objects. With the collection, I am going to be binding it to a CheckBoxList and other various controls. The business object that I am using is an Employee.
To get all of the employees, I create an ObjectDataSource and set the "Select" method. I then set the DataSourceID of the CheckBoxList to be that of the ObjectDataSource. When I load the page for the first time, I see all of the employees. Now, the user goes through this page and selects all the employees they want to see information about (by checking the box next to the employee name). Finally, the user hits the button called "Display." Upon postback how do I get a list of those employees? I've tried the following solution, but I'm not sure if it's the best practice in obtaining all those employees again. Here's my solution...
In the CheckBoxList, I set the DataTextField to the Employee's name. I also set the CheckBoxList's DataValueField. This property is a little different. I set this to be a UNIQUE IDENTIFIER, which can distinguish this employee from other employees. Now, when the user hits the button "Display" I use my ObjectDataSource again and MANUALLY call ObjectDataSource.Select(). I cast the returned value as a List<Employee>. Finally, I iterate through all list items in the CheckBoxList...
[Code]....
If the item is selected, I parse through my list of employees that was returned from the bjectDataSource.Select(). I use the item.Value and compare it to each employee's "key." If the key is found, I know that the employee is selected. I put this employee in another list called EmployeesSelected.
Finally, I take EmployeesSelected (which is a List) and set my GridView's .DataSource and call .DataBind() on the GridView.
Is this the "best practice" of re-obtaining the Employees that are selected on my page, or am I making this too complicated?
My current task is an ASP.NET page to display the contents of a data object. One of that object's properties is a list of named lists. For opacity's sake let's call it a Company, which has a list of named locations, and each location is associated with (only) a list of employees.In case it matters, Company has this property implemented like so:
Each of those lists can display very easily in a GridView. What I think I want is to put the whole thing in a TabContainerand have a separate TabPanel containing each grid. The tabs and grids will be identical to each other, and the name of each tab will be the associated dictionary keyIs there a good way to do this? My first thought was to use a Repeater, but you can't put one inside a TabContainer. The parser doesn't know what to do with it there.So, it looks like I'll have to create the tabs programatically. Fair enough. If at all possible, I want to avoid having to also create the individual grid controls and programatically assign all their properties.One suggestion I've gotten is to subclass TabPanel and make it work like a user control, containing a GridView and knowing how to pass databinding through to it. I'm not sure how to go about that, though, or if it will even work. I know how to subclass a control, but I don't think something can both act like a TabPanel and contain controls like a user control does.
What is the format for databinding to a complex "object"? I have a linq to sql class that has containment, i.e object.containedobject.I want to reference the sub objects fields declarative.So I've tried my MySubField.MyBasicProperty and that did not work, as well as, MySubField_MyBasicProperty.
Figure there is a simple solution to this problem but I have been unable to find it.I have databinding in an ASP.Net application to a GridView. This gridview is bound to an ObjectDataSource as per standard usage.The problem I have is that one of my bound fields uses the property DataFormatString="{0:C}" and due to the currency format being displayed when an update is attempted and the object recreated I get a error as such "$13.00 is not a valid value for Decimal."Clearly this is a result of the column using a FormatString and then attempting to bind it back to a decimal property I have in my object called UnitPrice.I am assuming there is some markup I can set that can specify how the value is translated back?For anyone curious the solution ended up looking like this...
I have a form in a page and a panel inside the form.The panel gets loaded with dynamic controls like radio button and text boxes.
User is allowed to choose any radio option and enter any value in the textbox beside it and then goes for submit button to move to next stage.
Problem Descritopn:
I load the controls in the panel based on the index of a combo control on the same form.it is done in selectedIndexChanged - This is working fine.
When i go for the submit button and ask for the textbox control, it says "object reference not set to instance of object", denoting that instance is not available. Moreover the panel control list gets empty automatically.
I have a user control with a datalist. I just want to do some simple binding but keep getting an object reference not set to an instance of an object error. The following is the code, I am sure I am just missing something simple:
Dim dc As Forms.DataClassesDataContext = New Forms.DataClassesDataContext Dim formQuery = From fq In dc.v_form_questions _ Where fq.FormTypeID = FormTypeID _
[code]...
When I debug, I see values for the formQuery; I am also able to loop through the formQuery and response.write a field out, however every time I try to bind it to a databound control, I get the Object reference not set to an instance of an object error.I initally was using a simple LinqDataSource object, but needed to set the where parameter to the FormTypeID property of this usercontrol. I had a Where condition defined on Page Init, but started getting the object reference error.
I got this error "object reference not set to an instance of an object" when i want to display the values of dynamic generated drop down lists by pressing a button to show the values in Listitem.
I am using an ObjectDataSource control to call a MapInfo object. This object has two properties:
public IList Visits public int TotalAvailable
The select method returns an IList but the TotalAvailable property is also populated. I have set the TypeName in the ObjectDataSource to the MapInfo object but because the Select method only returns the IList I don't have access to the TotalAvailable.
[code]....
Is there any way to access this value. I know it is being populated in the MapInfo object but all that gets returned from the Select method is the IList
Quick question here. I'm sure it's possilbe, just can't get it to work.
I've got a gridview. In have a gridview. The gridview is bound to a list of my custom class. The class exposes a link to an image as well as the image's height and width. I have a Image Control in the gridview. I've bound the Image Url to the correct property. Now, I'd like to bind the height and width properties as well. But everytime I do that I get the following error:
Cannot create an object of type 'System.Web.UI.WebControls.Unit' from its string representation '"<%#Bind("GetImageHeight()")%' for the 'Height' property.
I have a gridview in which I have two drop downs. One is populated with values that are static, so I have a regular sub that does that in the code behind. I tried to add code for databinding the other ddl to a datatable. I cannot get this to work. It just comes up empty. My asp code is fine, and the datatable definately has data in it - just nothing gets populated.
One other thing - the code for the static ddl has worked fine, but when I add this other block (either to the same sub as that, or dow the rowdatabound event) the static one doesn't work either.
Inside my repeater I'm calling an extension method like so:
[Code]....
he above is giving me an "Object not set to an instance of a object" exception inside the extension method. If I comment the above expression out, it works fine, and the items are binded wtih no problems.
I have a GV & a FV both linked to same sqldatasource.
When a GV row is clicked, the FV becomes available for editing the row but the GV as a result is reduced to only that row. I want to GV to remain showing all rows. I am using GV selected_index event to invoke "SqlDataSource1.SelectCommand=
I've created a templated user control by following the example on the microsoft support pages. I won't post it all but the important part of the CS file looks as follows:
[Code]....
I'm not sure if the whole _CurrentDataItem business is required, I don't think so.The problem I've got, is that I've tried nesting it inside a FormView control so I can use it to display a record from a database. My ASPX looks like this:
[Code]....
Now, the bound properties (TitleText and TitleSubText) bind correctly, but the nested / template content is blank when the page loads. I'm not sure if this is something to do with the order in which everything is loaded or because I'm missing some code in the SimpleTemplate to get it to bind (etc.).
I have a forms view with an EditItemTemplate. I would like to populate the EditItemTemplate using the code behind vs. mixing the data in the UI as so:
text='<%#Bind("Question") %>'
At what point do I do this? I thought it would be on FormView_DataBinding, but there is no e.item.dataitem like other databound controls. My issue is that I need to check criteria of the data prior so I know which inputs to make visible, to set properties of controls within the EditItemTemplate, and manipulate the data prior to binding (less of an issue as I can always just tweak the data prior to binding, but it doesn't solve my other problems).
I am having issues with databinding a textbox within a tab within a gridview. The textbox displays the data information properly; however when I try to edit a row in my gridview anything I type within that textbox is not saved in the database. Also my other fields for my gridview are editable, I am only having issues with this textbox within a tab. Here is the code:
I have a custom DataControlField class that works fine but when I try to use <%# Eval('???') %> with it I get an error."Databinding expressions are only supported on objects that have a DataBinding event. SharedG.ImageLinkButtonField does not have a DataBinding event."I can't get this to work,the DataControlField dosen't seem to have a DataBinding event to override or anything.I could use a normal templatefield itemtemplate etc.with eval but I don't want to rewrite this all the time. [Code]....
I was wondering what would be the best pratice to databind a gridview programmatically.Normally i put my databind code in the page_load() but is there a way to reduce the number of times the databind method is called?I mean... the page_load() method seem to be called a lots of times when doing callbacks with the grid.
im building a simple message messenger web application, i currently have a column in my database dedicated to the status of a message. Its bound to the third column in a datagrid.
After converting the column to a TemplateField and using a Label to fetch the data how do i change the text from the database to a small message, e.g. if the data in the database (as an interger) is 0. how do i change the interger to a string to display "UnRead". Do i need to do this during the databinding call or after the grid has been databound?
I know it would be easier to use a boolean and checkbox control but the interger column represents more values than true or false.
I have a DataList bound to a SqlDataSource, but I need to <#%Eval("")%#> a textbox in the same DataList from a different AccessDataSource. Is this possible?