Hi
I have an UltraWebGrid NA2010.3 to allow my users enter their timesheet; In filling out each timesheet row, they have a work type column which is of type ValueList and which is populated on page load. When filling in each row, when a value is selected, a second column Work SubType (also a ValueList) is populated based on the Work type selection. This is done in javascript using the grdTimeSheet_AfterCellUpdateHandler and calling a web method (in the code behind) returning the list to populate the SubType ValueList. This works fine.
My problem is when I load the timesheet from the database; in this case I am populating each row one at a time and setting the row's work type works as expected with the ValueList present if some user clicks on the type cell. Setting the subtype also works, but the dropdown ValueList is not populated (looks like the AfterCellUpdated handler does not work in this case?).
Is there a way I can populate the subtype dropdown foreach row based on the value of that row's type value?
Hi cloucas,
If I understand you correctly, you are populating the second dropdown depending on the selected item from the first one. And this is done when you change the selection of the first dropdown and AfterCellUpdateHandler is called. When the page is refreshed, the second dropdown would be empty, unless you set its ValueList on page load. You can set these values corresponding to the first item of the first dropdown (or the selected item by default), for example in the InitializeRowHandler client-side event. So even if the page is refreshed and the user don’t want to change the selection of first dropdown, the second one will be populated.
Let me know if you have any questions.
Hi Nikolay, thanks for your swift reply; I believe you have understood exactly the problem. I will try to do what you suggested, which is to also wire the InitializeRowHandler client-side (I must warn you though I am not very familiar with javascript; I had a friend of mine code the AfterCellUpdateHandler event); can i get back to you if I need any help?
Alternatively, can I wire the event server-side?
thanks
chris
Hi Chris,
Yes, you could also bind the dropdown in code-behind, in page load event:
UltraWebGrid1.Columns[0].ValueList.DataSource = GetDataSource();
UltraWebGrid1.Columns[0].ValueList.ValueMember = "Name";
UltraWebGrid1.Columns[0].ValueList.DataBind();
Please feel free to contact me if you have any questions.