C# - UpdateMethod In ObjectDataSource Only Receive Values For Properties From Visible Controls In DetailsView?
Mar 26, 2010
I've written a class that contains Select- and Update-Methods for an ObjectDataSource. The UpdateMethod receives an instance of a called class. My problem is, that only properties that are Bound in the DetailsView are set, the others have their default value.Here's my code:Class declaration:
public class Foo
{
public string Prop1 {get;set:}
public int Prop2 {get;set;}
[code]...
View 1 Replies
Similar Messages:
Mar 24, 2010
I've got a gridview connected to an objectdatasource which is bound to some custom objects in my code (code is below). The problem I'm having is that the value passed into my update method is the old value, not the new value. Thoughts?
Imports System.Configuration
Imports System.Web.Configuration
Imports System.Security.Cryptography
Imports System.Collections.Generic
Partial Public Class ManageUsersControl
Inherits System.Web.UI.UserControl
Dim auth As AuthenticationSection
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Users.DataBind()
End Sub
End Class
Public Class Users
Private sName As String
Private sPassword As String
Public Sub New()
End Sub
Public Sub New(ByVal nm As String, ByVal pass As String)
Name = nm
Password = pass
End Sub
Public Property Name() As String
Get
Return sName
End Get
Set(ByVal value As String)
sName = value
End Set
End Property
Public Property Password() As String
Get
Return sPassword
End Get
Set(ByVal value As String)
sPassword = value
End Set
End Property
End Class
Public Class UserData
Dim auth As AuthenticationSection
Shared userTable As List(Of Users)
Public Sub New()
auth = CType(WebConfigurationManager.GetSection("system.web/authentication"), AuthenticationSection)
End Sub
Public Function CreateData() As List(Of Users)
Dim dt As New List(Of Users)
For Each user As FormsAuthenticationUser In auth.Forms.Credentials.Users
dt.Add(New Users(user.Name, user.Password))
Next
userTable = dt
Return userTable
End Function
Public Function SelectMethod() As List(Of Users)
If userTable Is Nothing Then
Return CreateData()
Else
Return userTable
End If
End Function
Public Function UpdateMethod(ByVal userInfo As Users) As Integer
Dim user As FormsAuthenticationUser = auth.Forms.Credentials.Users(userInfo.Name)
Dim pass As String
Dim sha As New SHA1CryptoServiceProvider()
Dim enc As New System.Text.ASCIIEncoding()
pass = enc.GetString(sha.ComputeHash(enc.GetBytes(userInfo.Password)))
userTable.Add(New Users(userInfo.Name, pass))
user.Password = pass
Return 1
End Function
End Class
and the markup:
<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="ManageUsers.ascx.vb" Inherits="mystuff.ManageUsersControl" %>
<asp:GridView ID="Users" runat="server" AutoGenerateColumns="False"
AutoGenerateEditButton="True" AutoGenerateDeleteButton="True"
DataSourceID="UsersData">
<Columns>
<asp:BoundField DataField="Name" HeaderText="User Name" />
<asp:TemplateField HeaderText="Password" >
<InsertItemTemplate>
<asp:TextBox runat="server" ID="InsertPassword" Text='<%# Bind("Password") %>' />
</InsertItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" ID="EditPassword" Text='<%# Bind("Password") %>' />
</EditItemTemplate>
<ItemTemplate>
<asp:Label runat="server">*****</asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="UsersData"
DataObjectTypeName="mystuff.Users"
UpdateMethod="UpdateMethod"
SelectMethod="SelectMethod"
TypeName="mystuff.UserData"
runat="server"
OldValuesParameterFormatString="original_{0}"></asp:ObjectDataSource>
View 1 Replies
Feb 4, 2010
I know the back button always presents a problem, but this one doesn't make any sense.
I have a simple details view and a button on a page. The button sends the user to the homepage. I am trying to prevent the user from being able to use the detailsview if they click Back in their browser.
This is the button click event
[code]....
When the button is clicked...oddly the user is sent to the homepage then when they click the browser back button they are sent to previous page with the detailsview still visiible.
I know I am missing something, can someone fill me in?
Why is the detailsview still visible?
View 2 Replies
Mar 16, 2011
I have a DetailsView which has two fields - one that is visible, one that is not. The first the user fills out, the second I want to auto-populate. Unfortunately, I haven't been able to find a way to set the value in this second invisible field. I've tried adding code like this to the Page_Load:
If Not IsPostBack Then
DetailsView1.DefaultMode = DetailsViewMode.Insert
Dim txt1 As TextBox = DirectCast(DetailsView1.FindControl("Type"), TextBox)
txt1.Text = "administrator"
End If
But this returns an error of "Object reference not set to an instance of an object." how to accomplish this - either using the method above or another method? The hoped for end result is that when a new record is inserted via the DetailsView that this record will include the username (entered by the user) as well as the "type" of "administrator"
View 2 Replies
Apr 12, 2010
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
[Code]....
My Business Object code is below :
[Code]....
My Data Access Layer Code is:
[Code]....
View 2 Replies
Nov 7, 2010
In my ASP.NET application I am using a lot of ObjectDataSource controls. I want to set the following three properties globally for all ObjectDataSource controls:
EnableCaching="true"
View 5 Replies
Mar 25, 2011
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?
View 3 Replies
Oct 25, 2010
I have an objectDataSource to retrieve data and fill a listBox on edit
I created a BLL method to get the data and set the controlId to the detailsVeiw control but the id is not passed throuh to the bll class
this is my code:
[Code]....
View 1 Replies
Aug 25, 2010
i have a detailsview in insert mode and that is bound to objectdatasource. now the class that is attached to objectdatasource is :
[Code]....
here ResturantId value has to be in session or from Dropdownlist and rest of the value from Detailview. So how to assign that value?
View 3 Replies
Jul 28, 2010
I will try and be brief, I am finding when trying to create a custom route with a name and url of properties that my ASP.NET MVC app is returning a 404 file not found when hitting the route.I have deduced this down to most likely be caused by the fact I have a folder on disk called Properties which is of course a common asp.net folder which is automatically created. I have found someone else who has suffered from this problem on SO, but looks like there has been no resolution, only to name your route something different!
Surely this is an oversight, or there must be a workaround? Obviously there will be many common directories you may need as routes and/or folders interchangeably, some of which we already know like Properties probably can't be deleted! I also understand we need to honor real folders as URLs too, but I feel routing should take priority before looking at folders on disk.
View 4 Replies
Jan 15, 2010
I'm trying to bind both GridView and DetailsView to a single ObjectDataSource declaratively (in markup). I'm getting the error read as below when I tried to run it.
"The DataSourceID of 'DetailsView1' must be the ID of a control of type IDataSource. A control with ID 'ReservationsDataSource' could not be found."
It works when I bind GridView and DetailsView each seperately to my ObjectDataSource. Is it I can't bind two pagable data web controls to a single datasource?? or there is a trick needed to be done for this to work.
FYI, I'm trying to create a Master/DetailsView of my data. DetailsView of my application should show the record selected in GridView and it should be editable.
View 2 Replies
Jan 15, 2011
I am using a gridview to select a record and control that record using a details view. I am using a class based objectdatasource to link the data for select, update and delete. Sofar the select works but the update fails. Here is my error message:
ObjectDataSource 'odsDetailsView_1' could not find a non-generic method 'UpdateSet' that has parameters: setId, TYPE, iHPlayer, iAPlayer, iHRuns, iARuns, iH8Break, iA8Break, iHe8s8, iAe8s8, iH15BRn, iA15BRn, iHWins, iAWins, SET_ID, MATCH_FK, HOME_MEMBER_ID_FK, AWAY_MEMBER_ID_FK, HOME_TABLERUN, AWAY_TABLERUN, HOME_8BALLBREAK, AWAY_8BALLBREAK, HOME_E8S8, AWAY_E8S8, HOME_15BRN, AWAY_15BRN, HOME_TOTALWON, AWAY_TOTALWON, HOME_POINTS, AWAY_POINTS, LOCKED, GROUP_FK.
The first group of parameters have lower case letters and they come from my objectdatasources update method parameters. The second group of parameters are all capitalized and they are the fields in my SQL database table (and I don't know how they wound up in the error). This might be a clue.When executing the code my class method never gets the chance to execute because the error pops up before the code gets there.
Here is my objectdatasource:
[Code]....
Here is my detailsview:
[Code]....
Here is my class update method constructor:
[Code]....
View 1 Replies
Dec 14, 2010
I have a master/detail page using a gridview as the master, and a detailsview as the details. The gridview is set to select a record, and the detailsview picks up the ID and you can either edit that record, or add a new one.The detailsview is set up with various template fields, and if everything on the page is visible, it works OK.However, I wanted to hide the Gridview when the user in working with the detailsview. But if I do that, the detailsview doesn't update the record.
View 2 Replies
Apr 8, 2010
I have one GridView called GV_IssTypeDesc and one DetailsView called DV_IssueLog.
The scenario is that i only want GV_IssTypeDesc gridview to appear when DetailsView DV_IssueLog is in edit mode. How do i accomplish this?
I refered to: [URL]
For now i have done the following:
UpdateIssue.aspx
<asp:DetailsView ID="DV_IssueLog" runat="server" Height="50px" Width="400px"
AutoGenerateRows="False" DataKeyNames="dbIssID" OnModeChanging="DV_IssueLog_ModeChanging"
DataSourceID="SqlDS_IssueLog" BackColor="White" BorderColor="#E7E7FF"
BorderStyle="None" BorderWidth="1px" CellPadding="3" GridLines="Horizontal">
<asp:GridView ID="GV_IssTypeDesc" runat="server" AutoGenerateColumns="False"
CellPadding="4" DataSourceID="SqlDS_IssTypeDesc" ForeColor="#333333"
GridLines="None" Visible="false">
UpdateIssue.aspx.vb
Protected Sub DV_IssueLog_ModeChanging(ByVal sender As Object, ByVal e As System.EventArgs)
If e.NewMode = DetailsViewMode.Edit Then
GV_IssTypeDesc.Visible = True
Else
GV_IssTypeDesc.Visible = False
End If
End Sub
The "e.NewMode" is underlined blue in color and it is stated "NewMode is not a member of System.EvntArgs".
How do i solve this problem?
By the way, I am using Web Developer 2008, VB.net.
View 7 Replies
Apr 15, 2010
I have a problem that in DetailsView Edit Mode, if I go to edit fields, and set a fields visible property to false, when I update the record through the built in update options it sends a null value. If I change the field back to visible, it passes the data just fine.
Consequently, I tried just setting the field to Read Only = True, and got the same result even though the current values do show up in the edit mode, just read only.Is there anyway to hide the field but still allow it to pass the data it currently has "BACK" into the record.
View 2 Replies
Aug 9, 2010
I have the following situation:My business class:
public class Foo
{
public String A {get;set;}
public DateTime B {get;set;}
// .. and other properties like
public String Intern {get;set;}
}
I'm binding that Item to a DetailsView in Editmode. (I bind a List containing a single object of Foo, becuase I do recall that I can only bind IEnumerable<> classes to the DetailView)The binding is done via a ObjectDataSource
View 1 Replies
Jan 26, 2010
If a control (say a label or textbox) is set to visible = false then
1. Is the value specific for each user(like session) or for whole application?
2. If it is user specific, then how is the value kept across multiple Http requests? is it by session management(cookie or URL rewritting) or viewstate?
3. If it's by viewstate, does that means users still have chances to modify the 'invisible' control's value?
4. If it's by session management, I can't depends on the 'invisible' control's value unless I am 100% sure cookie or URL rewritting is working, right?
View 2 Replies
Feb 22, 2010
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
View 2 Replies
Oct 29, 2010
Is it possibile to have templateField from detailsView visible only in inserMode?
<asp:TemplateField HeaderText="My Header" SortExpression="TypeName" Visible='<%# Eval("DetailsView1.CurrentMode == DetailsViewMode.Insert")%>'>
this doesnt work exception is:
Databinding expressions are only supported on objects that have a DataBinding event.
System.Web.UI.WebControls.TemplateField does not have a DataBinding event.
View 1 Replies
Aug 20, 2010
What to do to show DetailsView even when there is no data in underlying datasource?The problem is that when DetailsView is not visible, the command buttons are also not visible. So I can not insert a new record to a database. I would like to have always visible DetailsView with its DefaultMode set to ReadOnly.If it is not possible I would like to ask for an workaround for this problem.
One workaround which I have on my mind is to check if datasource have any records. If no then programmaticaly change DefaultMode to Insert. However this causes another problem - how to count the number of records in DataSource.All my problems are related to the ASP 3.5
View 1 Replies
Mar 31, 2011
I am basically trying to check the contents of a field in a data base (Course) to determine if a button (btnMisfills) shoulf be displayed for a specific user. I am sure ther are probably better way of doing this, and any suggestions would be appreciated. However I am using the few tools I know how. Everything works as expected as long as the DetailsView is visible, but I have no need to display the detailsView. When I change the detailsView to visible = false, my logic does not work. Apparently visible = false means the detailsview is not created. If this is true, how else can I check for the contents of the course field?s there a way to check a field in the sqldatasource?
[Code]....
View 2 Replies
Mar 8, 2010
I want to making another dropdownlist visible=false when clicking in dropdownlist on the same detailsview?
View 4 Replies
Jan 4, 2011
This is an ASP.NET 3.5 web app written in C# using VS2008 and connecting to an MS SQL backend. It is using ad hoc queries in a strongly typed dataset to pull from the database. This query (shortened for clarity) is designed to allow optional input of parameters (a requirement) or pull all records if no parameters are input. It works normally in SQL Server Management Studio with the addition of Declare and Set statements and it works normally in the TableAdapter's Query Builder:
[Code]....
The markup contains this ObjectDataSource, which is tied to the TableAdapter with the above query:
[Code]....
The problem I'm having is in passing null values to the ODS to feed to the query. Tying the ODS parameters directly to the dropdownlists and textboxes didn't work. Got an error message that there was a mismatched data type. Tried several combinations of code to feed the right values to the ODS parameters but couldn't find one that worked. Is the problem in the query or am I setting up the code-behind wrong? Here's the code:
[Code]....
View 9 Replies
Apr 13, 2010
I have a GridView control with a header template with Text Boxes so users can input new data for a new row. I need to bind the text property of each TextBox in the header row with the insert parmaeters in my ObjectDataSource.
View 3 Replies
Mar 2, 2010
I am able to get the values of GridView cells when the columns are not visible.
For Example:
<asp:BoundField DataField="TemplateKey" Visible="false"/>
foreach (GridViewRow gvrow in GridView1.Rows)
{
gvrow.Cells[0].Text.ToString()
}
But if I make the BiundFiled Visible="true" then I get the value in the code behind.
I do not want to show this value to the user and also want to get the value in the code behind. How can I do that?
View 2 Replies