Forms Data Controls :: DataKeyNames & DataKeys Not Working On Other Pages?
Feb 21, 2011
When the page is displayed have labels, textboxs, and dropdownlists on top part of the page then the gridview at the bottom with the page numbers at the bottom of the gridview. Create the columns and add data to the gridview programmatically with several hidden columns. Use DataKeyNames on the source page and use DataKeys in VB.Net code behind to get data from the hidden column cells of the selected row. On the
first page when a row is selected, the textboxes and dropdownlists have thecorrect information from the gridview hidden columns. When select another page from pages numbers at the bottom of the gridview and select a row from the new page, get theinformation from the hidden column from the first page andcorrect data from the columns that are displayed onnewly selected page.
I have a gridview with a linkbutton in each row. When I click the linkbutton it should update the status of a field from enabled to disabled. I am using a stored procedure to achieve this but i need to pass in a ApplicationID which i am retrieving from the gridview through the use of datakeynames. I am using the code below to get this value into a variable.
I have a GridView with edit/update functionality. While updating, I need to get some hidden values saved in DataKeyNames. How to get the values of DataKeyNames via RowCommand? I have tried the following code via RowUpdating and RowCommand, but it gives an error in e.CommandArgument.
I set the MaintainScrollPositionOnPostback="true" control in the .aspx page code and for one of the pages, it works great. But in the second page, it doesn't work at all. The two pages are nearly identical in code, with just the addition of some more textboxes on the second page, at the bottom of the page. Both pages have virtually identical code above the <html> tag, with the exception of the values assigned to the "CodeFile" and "Inherits" controls in the <Page> tag, to correspond with each page's VB codebehind.
Both pages have two buttons at the bottom. The first page has a button for submitting a new record and a second button for clearing the fields. The second page has a button for updating an existing record and a second button for inserting a new record (for revision control). Both pages submit data to Oracle database tables. I've been trying to figure this out for the last several hours, searching this forum and Google, but so far I've come up with nothing. I can't figure out why the MaintainScrollPositionOnPostback won't work on the second page, but is fine on the first.
my page based on master and Details. there are two gridview one is header and other detail.detail gridview is inner gridview.so when i click on + symbol then details should diplay.i use dataKeys for display Inner gridview record.when i use one datakeys then it is working fine but i need two condtion for show Inner Gridview. how can use multiple datakeys here?my HTML code is below. just modify it for multiple Datakeys
I have a Datagrid one of the colums is a checkbox and when it is selected I' m supposed to update that row. I have a button to update this outside the Datagrid. It seems to work well for the first two rows but after that meaning starting 3 to any it just doesnt update no errors but doesnt update. When I look into the id it seems to be empty.
Private Sub btnInactivateAllSelected_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnInactivateAllSelected.Click ' 'Function declarations Dim currentMethod As String = MethodBase.GetCurrentMethod.Name 'Object declarations 'Variable declarations Dim ruleID As Guid = Nothing Dim oRule As PSXSTL.Digecenter.Rule = Nothing Dim changetext As String = Nothing 'Start Try...Catch statement _moduleName = "btnInactivateAllSelected_Click" Try For Each item As DataGridItem In GroupDataGrid.Items If CType(item.FindControl("chkApprovalCheck"), CheckBox).Checked = True Then ruleID = GroupDataGrid.DataKeys(CInt(item.ItemIndex)) oRule = New PSXSTL.Digecenter.Rule(DirectCast(Session("CustomerID"), Guid), ruleID) If oRule.Complete Then oRule.RuleStatus = False oRule.ActiveDate = Now.ToString changetext = "On " + Now + " " + Session("FirstName") + " " + Session("LastName") + " deactivated the Rule." If Not oRule.ProofReviewed Then changetext = changetext & " PDF not viewed" End If LogEditHistoryItem(changetext, ruleID) ' Call ' added 10/19/2004 by Rob MacMorran LogBulkOrderHistory(oRule) oRule.Update() End If oRule.Dispose() End If Next ' Server.Transfer("customer_clientrules_results.aspx") Catch ExceptionObject As Exception 'Write the exception out to the event log. EventLogHelper.LogException(ExceptionObject, _moduleName, "Error occurred in " & _moduleName & "/" & currentMethod & ControlChars.CrLf & ExceptionObject.StackTrace, EventLogEntryType.Error, 55555) Finally 'Cleanup 'Object disposal If Not oRule Is Nothing Then oRule.Dispose() oRule = Nothing End If 'Variable disposal ruleID = Nothing changetext = Nothing 'Function variable disposal currentMethod = Nothing End Try Server.Transfer("customer_clientrules_results.aspx") End Sub
I'm using a Gridview with Paging enabled. Also i'm using the Datakeys in Gridview. I can able to get the DataKeys values on first page. But when i click on the second page, i'm not able to get the DataKeys values. How to get the DataKeys values on Paging.
I've got a big problem here with the ListView control. Basically I've got very basic code, yet it seems to break the control completely.
Here's the deal, I got a simple ListView using an ItemTemplate containing a hyperlink. Obviously the hyperlink has to lead somewhere after clicking, so the datakeys enter the scene since I need to hook up a hyperlink containing the Id of the record it's in as a parameter.
Normally this shouldn't be a problem, so in the itemcreated event I look up the link control and add the url using data foud in the datakeys.So far so good, this all works out fine.
Now this contains a number of records, too many to display on one page, so I decided to implement paging by using a DataPager, which is the way to get the ListView to support paging. This didn't work.
After a little tinkering around with the code, I found that if I didn't get any datakeys in the itemcreated event, that it all works fine. However, I need to use the datakeys or I won't be able to hook up a url to the hyperlink.
Basically, that one line of code completely kills paging. Commenting it out immediately sets things right, but that's not an option.
I have two listviews. What i want to do is that when the nested listview emptydatatemplate shows i want to put a hyperlink with a querystring in it, the id in the querystring should be the fk in the nested listview. Is it possible to bind the hyperlink with the id in codebehind? I use two object datasources. Does it matter where i put the nested listview now i have it in the parents itemtemplate. Also it seems to be a problem to set the datakeynames in the nested listview, what could be the reaso for that.
From what I understand within the Gridview Object you can have many datakeynames.
I have the field like this DataKeyNames = "id1, id2"
However, i don't know how to access the DataKeyNames individualy. For example. How do you access the first ID for the for a given row or the 2nd ID for a given row????
[Code].... When i debug i get an error that says: 'System.Data.DataRowView' does not contain a property with the name 'job_id'and sometimes 'System.Data.DataRowView' does not contain a property with the name 'pub_id'I need to get the appropriate value for the selected row. GridView only output Jobs results or Publishers results, the problem is when the user clicks select button beside the record, i get the error i mentioned above.
i'm getting error on finding control from grid's row.control is an imagebutton which is placed inside a template field.my requirement is if add to cart button is clicked and if that particular book has its volums then it should show message that you need to see its detail and then after selecting its volume you can add it to cart...but i'm trapped in where i'hv to attach bookcod with querystring which is in datakey names of grid. The datagrid has one column only and thats template field..
I have two columns in my Gridview marked false for the visible property but which are clearly listed in the DataKeyNames that are still getting set to null in my database table on update.
The first one is a column MId# which is a type int. It starts as 0 but on edit is turned into null. The Second is RequireSKU which is also converted to null.
Since I am using 2 DataKeyName is Gridview, so I have to pass both the DataKey while deleting Row from Gridview(using "Image Button" of Gridview).I tried it using below lines:
string name = GridView1.DataKeys[gvrow.RowIndex].Value["G_Name"].ToString(); string id = GridView1.DataKeys[gvrow.RowIndex].Value["Param_ID"].ToString();
I am did Gridview delete and rebind data using json and jquery like this
<script type="text/javascript"> $(document).ready(function () { $(".deleteGridRecord").click(function () { //Get the Id of the record to delete var record_id = $(this).attr("id");
[Code] ....
But i want to set DataKeyNames properties of grid view in above code dynamically how can do this....
URL....When the user creates a new child record (2nd gridview) how can I ibsert a field from the parent level (obviously from the line where they clicked from).