Re: Web Parts Instances

Tech-Archive recommends: Fix windows errors by optimizing your registry



Hi JJ,

Yes, I have looked at the pageflake sites you provided, it seems a typical
webpart like personalizable page. And we can drag multiple instances of
StickyNote parts onto the page and type difference info into. However, when
I close the page and visit it again, I think it should regenerate the page
interface with database record. e.g. It will add two StickyNots parts onto
page again, and assign their ID as the one from database record(rather than
recalculate the ID via code), right?

Also, for such personalize page, it will surely depend on client cookie,
otherwise, the server won't know whether it is the same client that request
the page again or which personalized data should retrieve from database to
repopulate it. So cookie will play an important role here, do you think so?


Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead


This posting is provided "AS IS" with no warranties, and confers no rights.

--------------------
From: "JJ" <abc@xxxxxxx>
Subject: Re: Web Parts Instances
Date: Fri, 5 Oct 2007 13:57:23 +0100


Better still they have a notepad 'pageflake' there (you need to 'Browse
all
flakes' when personalizing your page), and that is exactly what I am
trying
to create.



"JJ" <abc@xxxxxxx> wrote in message
news:%23jo9gZzBIHA.5752@xxxxxxxxxxxxxxxxxxxxxxx
Here's a small example of what I am trying to do. This site is based on
web parts. You can add multiple instances of the same web part on a page
and each web part accessed different database records. Go to this site:
http://www.pageflakes.com/

And choose to Personalize your page. Now choose to add the 'Sticky Note'
web part, then add another one. You can see that you can type different
text in each web part and move the web parts around. Each web part is
associated with a different record stored in the database.

This is a simplified version of what I need. This surely proves that
there
is a way to do this. Yes, the page information is based on a per user
basis, but you still have the problem of associating a particular web
part
with a particular database record for each user (i.e. using the username
as a key to finding the record is not enough).

??

"Steven Cheng[MSFT]" <stcheng@xxxxxxxxxxxxxxxxxxxx> wrote in message
news:se9erPwBIHA.5204@xxxxxxxxxxxxxxxxxxxxxxxxx
Thanks for your followup JJ,

To answer the question in former messages:

*Yes, GetHasCode implementation may vary between different framework
version, it has opacity.

*Sure, timestamp approach can only make sure you assign a new created
instance a unique ID, it should be our own code logic to always
associcate
a given ID with a certain objecct instance(for your case, the object is
Editor web part).

In original messages, I haven't realized that you need to associate your
editor webpart with database record. Would you provide some more
business
code logic info on this? Now, what I understand is that you may have
multiple editor webpart instances on a page and each of them should map
to
a unique record in database. And next time user open page and open new
editor webparts, you need to associate them to database records
again,correct?

If this is the case, I'm afraid it is quite hard to archive. Because
generally, the mapping sequence should be as below:

** you retrieve records from database

** you create editor webparts based on those records in databases

It's quite hard to create webparts and then associate them with database
records. Because you haven't any identifer for those new created
webparts,
right? Mostly, in web application, you may consider using current
user's
identifer(if there is user authentication in your application) to
uniquely
identify an object. Do you think it is possible to do this in your
application?

Anyway, please feel free to let me know if there is still anything I
missed
here.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead


This posting is provided "AS IS" with no warranties, and confers no
rights.


--------------------

Subject: Re: Web Parts Instances
Date: Thu, 4 Oct 2007 14:14:56 +0100


I'm really stuck here if anyone can help.

I'm basically trying to create a html editor web part (not using
Sharepoint). In order to do this I need to somehow hard wire the web
part
instance (remembering that there may be more than one instance of this
web
part on any page, and that the pages url may change also due to the
cms/url
rewriting) to a database record that stores the actual html.

My problem seems to come down to:
1) how you would pick a unique identifier that could be used as a key to
the
database record,
2) how you would keep this constant whenever the web part was moved,
page
url changed (via url re-writing) etc,
3) how the unique identifier would persist (if it was not somehow
calculated
each time the web part loads) indefinately

??

Web parts seem to me to be an obvious approach to building a 'simple'
cms,
in that an 'editor' can add/remove parts via the shared scope. What I am
trying to do here is create a part that also allows them to edit what
text
is within one of the parts.

Judging by the lack of info around on this issue, I am either doing
something that will never work, or I am missing something obvious....

Please help if you can,
JJ



"JJ" <abc@xxxxxxx> wrote in message
news:OEVTdemBIHA.3916@xxxxxxxxxxxxxxxxxxxxxxx
Another thougth about the GetHashCode + Unique ID method:
In this scenario I am building a limited CMS system. It is possible
therefore that the URL of the page may change if its location in
changed
in the heirachy of the site (which will use URL rewriting). Is the
Hash
Code based on this URL, or on some unchanging properties (like the
filename and path from root, for example)?

If its based on the re-written url, then this will change and so,
again
the connection between the unique identifier and the database record
will
be broken...

Thanks,
JJ


"Steven Cheng[MSFT]" <stcheng@xxxxxxxxxxxxxxxxxxxx> wrote in message
news:RBn78BjBIHA.5204@xxxxxxxxxxxxxxxxxxxxxxxxx
Hi JJ,

To answer your question first, Yes, UniqueID is a unique identifer
for
a
given control, but this is only guaranteed at page level(for this web
form
page), it help make sure that on the client-side rendered html form,
every
control won't have duplicated client identifiers.

for your scenario, you just need to make sure each webpart control(of
your
custom one) instance has its own unique value and this value need to
be
automatically generated, correct? If so,I think you can consider the
following approaches:

1) Use the Page's "GetHashCode" to get its instance identifier and
then
combine it with your control's uniqueID(or also HashCode value) to
generate
an new identifer.

2) You can use the current timestamp and combine your control's ID to
generate an identifer

How do you think?

If there is anything I misunderstood, please feel free to post here.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead



==================================================

Get notification to my posts through email? Please refer to


http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.



Note: The MSDN Managed Newsgroup support offering is for non-urgent
issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each
follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach
the
most efficient resolution. The offering is not appropriate for
situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are
best
handled working with a dedicated Microsoft Support Engineer by
contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.

==================================================


This posting is provided "AS IS" with no warranties, and confers no
rights.

--------------------
From: "JJ" <abc@xxxxxxx>
References: <O9U2W9dBIHA.4880@xxxxxxxxxxxxxxxxxxxx>
Subject: Re: Web Parts Instances
Date: Wed, 3 Oct 2007 18:44:03 +0100
Ok I think, or rather hope, I've gone some way to answering my own
question.

I've used the controls UniqueID property to establish a connection
between
the instance an a unique record in the database. From my very limited
tests,
this UniqueID property doesn't seem to change if you change the
position
of
the web part on the page, or if you add others around it, or change
the
order.

My next quesiton is, is this uniqueID unique throughout the entire
site,
or
do I need to add some other unique information to it (like the path
to
the
current page, for instance)? I suspect I do, but would appreciate
some
advice here...

JJ


"JJ" <abc@xxxxxxx> wrote in message
news:O9U2W9dBIHA.4880@xxxxxxxxxxxxxxxxxxxxxxx
I'm newish to web parts:

Say for example I create a web part from a control that displays
some
text
on a web page. The control would allow some text, which is stored
in
an
sql database, to be edited. The user could in theory add several
instances
of this web part to a page, and each instance needs to display its
unique
text as stored in the corresponding record in the database.

In order to achieve this I would imagine I need to tie a web part
instance
to some sort of unique identifier. How would I do this? In other
words,
how is it possible for different instances of the same web part to
refer
to unique records?

Please tell me if I'm not making myself clear.
JJ

















.



Relevant Pages

  • Re: Web Parts Instances
    ... editor webpart with database record. ... multiple editor webpart instances on a page and each of them should map to ... Because you haven't any identifer for those new created webparts, ... Microsoft MSDN Online Support Lead ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: Web Parts Instances
    ... associated with a different record stored in the database. ... multiple editor webpart instances on a page and each of them should map ... Because you haven't any identifer for those new created ... Microsoft MSDN Online Support Lead ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: Web Parts Instances
    ... each web part accessed different database records. ... multiple editor webpart instances on a page and each of them should map to ... Because you haven't any identifer for those new created webparts, ... Microsoft MSDN Online Support Lead ...
    (microsoft.public.dotnet.framework.aspnet)
  • problem with IListSource does not contain data source!!
    ... datagrid, when deploying my webpart, i receive the message: ... Description("The database where the Enterprise Data is located.")] ... public string DataBase ... protected override void CreateChildControls() ...
    (microsoft.public.sharepoint.portalserver.development)
  • Re: question(s) about integrating the document library
    ... You need to use WebPart connections, you'll find a tonne of information ... I wish to set up my own relational database using SQL server. ... I intend to write a webpart that supplies a summary of the master ... separate folder for each master record, since the user might wish to ...
    (microsoft.public.sharepoint.portalserver)