Question: How can i refresh grid data when new data added in exts?

Answer: 
If you declare your array static, it will be placed in the data section of the executable and initialized only once (on first access) or even not (it might be initialized in the executable already).

Without static, the data will be on the stack of each of the function's invocations, and initialized every time the function is called.

Just a little nitpick, when you say you've seen code where `struct u2type` is static, this is not really true. Although the static storage specifier appears before the struct, it really applies to the variable, in this case, the array. Even with

```
static struct foo { ... } foos [] = { ... };

```

You can then do

```
struct foo foo1={ ... };

```

and `foo1` will be an automatic variable.
If you declare a variable static within a function it is only initialized once when the function is entered for the first time. If you declare it non-static it is initialized each time the function is entered.

In your case it can make a slight difference. With *static* the array will be allocated in the static storage and initialized no more than once. Without *static* it will be allocated on stack and each time the function is called.