Hi Alaa.
Thanks so much for the reply.
Sorry, with “clear” I meant the control to be empty. So, if the user empties its content, what would be a NULL date, I want its bound property to be set to 01/01/1800. On the other hand, if the property value returns 01/01/1800, I would like the control to show an empty space, and of course, let the user type or choose any date they want.
And no, so far I am not using any UserControl for this.
I can be confusing at times (most of them), so ask me anything you want to make it clear. 🙂
Hi Ivan,
When you said that you want to “clear” the DateTimePicker, do you mean that you want to set the value of the control to be empty or just show the desired date?
If that’s what you’re looking for I have attached a file to what could be a resolution to your problem.
If that’s not the case, can you please provide me with some more information?
Maybe you’re using some UserControls?
Best regards,
Alaa
I cannot reproduce. Tried to copy the code above and runs. The only issue is that since you are starting a task first and then another task when the first runs you are losing the Wisej context. But nothing changed in that respect. Task.Run() loses the context. Application.StartTask() doesn’t. You should always use Application.StartTask() if you want to preserve the context and be able to push-update the page.
It shouldn’t. There was no change related to child properties. They are controlled by the TypeConverter.GetPropertiesSupport() and TypeConverter.GetProperties(). There was a fix where the Wisej.Web.PropertyGrid was calling many TypeConverter methods passing in a null ITypeDescriptorContext.
I tried using both a custom class and a control class but I don’t see the child Color properties. Do you have a custom TypeConverter? Can you reproduce in a small sample?
Levie (ITG)
Thank you.
With this, various widgets of kenne-slider
To program the parts
I can do it.
Hi Andrew,
Actually there are not property for that job, but I have a simple functionement for do that.
You can open SupportTaskUpdated.zip and add this code:
var number = 5;
InsertSomeItems(number);
list.ScrollRowIntoView(list.FirstDisplayedRowIndex+number,Position.Top);
PS. list is name of DataGridView
Principe is to use scroll to the last first display row plus number of added row.
Best.
Kevin(ITG)
Oh, now I got what you were telling me. Nope, I didn’t expect to use Wisej panels nor controls in it. The DevEx Dashboard seems to be like a Report Viewer with its own controls and a Designer that lets the end user change its contents. I will have a look at the Wisej AspNetControl.
As a whole yes, with devexpress asp.net controls in it. You cannot put wisej panels in it. You can use it with the AspNetControl extension.
Thank you Luca!
Sorry for the dumb question… taking what you said into consideration, is there a way to use the Dashboard?
It’s an ASP.NET control which has to run in an iframe because of the asp.net page cycle so you cannot place Wisej widgets inside an iframe inside the same wisej container.
In general even for JavaScript extensions like DevExtreme we cannot use containers (yet).
I tried this
lvTrucks.SelectedIndex = -1;
lvTrucks.BeginUpdate();
lvTrucks.Items.Clear();
lvTrucks.Items.EndUpdate();
In many variations but cannot reproduce.
What Wisej build?
Are you using VirtualMode?
Can you reproduce in an isolated sample?
Do you some some async/task operation on the listview?
The bug only throws when you try to call .Clear() with a ListViewItem selected. I can workaround the bug by de-selecting any selected items before calling .BeginUpdate(); and .Items.Clear();
this definitely appears to be a WiseJ bug!
lvTrucks.SelectedIndex = -1;
lvTrucks.BeginUpdate();
lvTrucks.Items.Clear();
Actually, I can generate this error just by calling TrucksToListView(); a second time from another button click. It seems if you select a ListViewItem, and you call the refresh code, it randomly fails.
private void TrucksToListView()
{
lvTrucks.BeginUpdate();
lvTrucks.Items.Clear(); //throws error here
for (int i = 0; i < Trucks.Count; i++)
{
Trucks tk = Trucks[i];
ListViewItem li = new ListViewItem();
li.Text = tk.id.ToString();
li.SubItems.Add(tk.type);
li.SubItems.Add(tk.truckNumber);
li.SubItems.Add(tk.inspectionDueDate.ToString());
li.SubItems.Add(tk.inService);
li.Tag = tk.id; //tag is storing the truck ID.
lvTrucks.Items.Add(li);//add the listitem
}
lvTrucks.EndUpdate();
}
Hi Harald,
We decided to leave the PictureBox the way it is now. The AutoSize configuration option sets the default image height / width to 0. That’s why the background doesn’t show up.
If you want to show the background you’ll need to toggle the SizeMode to a different setting.
Please let me know if you still need assistance with this!
Best,
Levie
Hi Tom,
I just wanted to follow up to see if you’re still not able to open the Wisej designer.
Let me know!
Best,
Levie
Hi Stefano,
Please take a look at the attached sample, based on: https://www.chartjs.org/docs/latest/charts/mixed.html
Please let me know if this doesn’t work for you.
Best,
Levie
Hi Amy,
Can you please put breakpoints to see if your functions to populate the ListView are being called in your forms?
Best regards,
Alaa
Hello Kevin.
Thank you for looking at this for me. I checked over the example you created and it all looked good. I went over my application again and found that the problem was only when rows were inserted into the BindingList at a point above where the user was currently viewing. I didn’t state any of this in my first post, sorry. I have added to the example that you created and attached the amended example to this reply. To see the problem run the attached example and:
– Scroll down to about halfway down the items in the datagridview (I made the program add 30 at the start) but don’t select a row.
– Click the ‘Add data to end’ button. The scroll bar jumps slightly to account for the increase in rows but the datagridview stays with the same rows in the viewport. This looks good.
– Click the ‘Insert data at start’ button. This inserts an object to position 0 in the BindingList. This time instead of the datagridview staying where it is it jumps to the top of the list of items, it behaves differently compared to adding objects to the end of the list.
Is there a way to insert items to the BindingList prior to the user’s currently viewed items and the datagridview viewport to not jump ?
(I found that if you select a row in the datagridview, scroll away from that selected row then click the ‘Insert data at start’ button the datagridview jumps to bring the selected record back into view. If there is no selected row it treats the first row as selected and jumps to the top of the list).
Thanks for your help
Andrew
Ciao,
please find a sample attached that shows how to use the Button Tag to bind to an ID
and how to handle child controls inside ItemUpdate.
Best regards
Frank
Sure. Use panels and dock them accordingly. I stack mine vertically. Keep in mind the on-screen popup keyboard for iOS (Safari) may take up the bottom half of the screen — don’t let it cover your textboxes. Make a function to detect whether the browser is mobile … or if the screen is in portrait mode. Then you can call custom functions to change the UI when you load the form or page. Some things you may need to pay attention to — button and control sizes (in case they are too small). I believe those can be modified in the theme or with a mixin.
