الإرشادات التفصيلية: الربط إلى بيانات من خدمة في مشروع على مستوى التطبيق
ينطبق على |
---|
تنطبق المعلومات الموجودة في هذا الموضوع فقط على أنواع المشاريع وإصدارات Microsoft Office التالية: لمزيد من المعلومات، راجع الميزات المتوفرة بواسطة تطبيقات Office و نوع المشروع. نوع المشروع
إصدار Microsoft Office
|
يمكنك ربط بيانات إلى عناصر تحكم المضيف في مشاريع على مستوى التطبيق. توضح هذه الإرشادات التفصيلية كيفية إضافة عناصر تحكم إلى مستند Microsoft Office Word بربط عناصر التحكم على البيانات التي تم استردادها من خدمة محتوى MSDN والاستجابة لأحداث في وقت التشغيل.
توضح هذه الإرشادات التفصيلية المهام التالية:
إضافة عنصر تحكم RichTextContentControl إلى مستند فى وقت التشغيل.
ربط عنصر التحكم RichTextContentControl إلى بيانات من خدمة ويب.
الاستجابة للحدث Entering من عنصر التحكم RichTextContentControl .
ملاحظة
قد يعرض جهاز الكمبيوتر الخاص بك أسماء أو مواقع مختلفة لبعض عناصر واجهة مستخدم Visual Studio في الإرشادات التالية. يحدد كل من إصدار Visual Studio لديك والإعدادات المستخدمة هذه العناصر. لمزيد من المعلومات، راجع العمل مع إعدادات.
المتطلبات الأساسية
تحتاج إلى المكونات التالية لاستكمال هذه الإرشادات التفصيلية:
-
إصدار لـ Visual Studio 2010 يشمل أدوات مطوري Microsoft Office. لمزيد من المعلومات، راجع [تكوين كمبيوتر لتطوير حلول Office](bb398242\(v=vs.100\).md).
- Microsoft Office Word 2007 أو Word 2010. :
إنشاء مشروع جديد
الخطوة الأولى هي إنشاء مشروع وظيفة Word إضافية.
لإنشاء أحد المشروعات الجديدة
على سبيل المثال، إذا كنت إنشاء وتسميته بالعملاء، سيكون اسم _Customers في ذاكرة تخزين مؤقت.
لمزيد من المعلومات، راجع كيفية القيام بما يلي: إنشاء مشاريع Office في Visual Studio.
يفتح Visual Studio الملف ThisAddIn.vb أو ThisAddIn.cs و يضيف المشروع إلى مستكشف الحلول.
إضافة خدمة ويب
للحصول على هذه الإرشادات التفصيلية استخدم خدمة ويب تسمى خدمة محتوى MTPS. تقوم خدمة ويب هذه بإرجاع معلومات من مقالة محددة في نموذج من سلسلة XML أو نص عادي. سيظهر فى خطوة لاحقة كيفية عرض المعلومات التي تم إرجاعها في عنصر تحكم محتوى.
لإضافة قالب خدمة المحتوى MTPS إلى المشروع
في قائمة البيانات ,انقر فوق إضافة مصدر بيانات جديد.
في معالج تكوين مصدر البيانات ، انقر فوق الخدمةثم انقر فوق التالي.
في الحقل عنوان قم بكتابة URL التالي:
http://services.msdn.microsoft.com/ContentServices/ContentService.asmx
انقر فوق انتقال.
في الحقل مساحة الاسم ، اكتب ContentServiceثم انقر فوق موافق .
في مربع الحوار معالج إضافة مرجع ، انقر فوق علامة تبويب إنهاء .
إضافة عنصر تحكم محتوى و الربط إلى بيانات في وقت التشغيل
في المشاريع التي على مستوى التطبيق ، يمكنك إضافة وربط عناصر التحكم في وقت التشغيل . من أجل هذه الإرشادات التفصيلية، قم بتكوين عنصر تحكم المحتوى لإسترداد بيانات من خدمة ويب عندما يقوم مستخدم بالنقر داخل عنصر التحكم.
لإضافة عنصر تحكم محتوى ثم ربط البيانات
في فئة ThisAddIn ، تقوم بالتصريح بالمتغيرات الخاصة بخدمة المحتوى MTPS و محتوى عنصر تحكم وربط. البيانات
Private request As ContentService.getContentRequest Private proxy As ContentService.ContentServicePortTypeClient Private document As ContentService.requestedDocument() Private response As ContentService.getContentResponse Private appId As ContentService.appId Private WithEvents richTextContentControl As Microsoft.Office.Tools.Word.RichTextContentControl Private components As System.ComponentModel.Container Private primaryDocumentsBindingSource As System.Windows.Forms.BindingSource
private ContentService.getContentRequest request; private ContentService.ContentServicePortTypeClient proxy; private ContentService.requestedDocument[] document; private ContentService.getContentResponse response; private ContentService.appId appId; private Microsoft.Office.Tools.Word.RichTextContentControl richTextContentControl; private System.ComponentModel.Container components; private System.Windows.Forms.BindingSource primaryDocumentsBindingSource;
قم بإضافة الأسلوب التالي إلى الفئة ThisAddIn . ينشئ هذا الأسلوب محتوى عنصر التحكم في بداية المستند النشط.
Private Sub AddRichTextControlAtRange() Dim currentDocument As Word.Document = Me.Application.ActiveDocument currentDocument.Paragraphs(1).Range.InsertParagraphBefore() ' Use the following line of code in projects that target the .NET Framework 4. Dim extendedDocument As Document = Globals.Factory.GetVstoObject(currentDocument) ' In projects that target the .NET Framework 3.5, use the following line of code instead. ' Dim extendedDocument As Document = currentDocument.GetVstoObject() richTextContentControl = extendedDocument.Controls.AddRichTextContentControl _ (currentDocument.Paragraphs(1).Range, "richTextControl2") richTextContentControl.PlaceholderText = _ "Click here to download MSDN Library information about content controls." End Sub
private void AddRichTextControlAtRange() { Word.Document currentDocument = this.Application.ActiveDocument; currentDocument.Paragraphs[1].Range.InsertParagraphBefore(); // Use the following line of code in projects that target the .NET Framework 4. Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument); // In projects that target the .NET Framework 3.5, use the following line of code instead. // Document extendedDocument = currentDocument.GetVstoObject(); richTextContentControl = extendedDocument.Controls.AddRichTextContentControl( currentDocument.Paragraphs[1].Range, "richTextContentControl"); richTextContentControl.PlaceholderText = "Click here to download MSDN Library information about content controls."; }
قم بإضافة الأسلوب التالي إلى الفئة ThisAddIn . هذا الأسلوب يقوم بتهيئة الكائنات المطلوبة لإنشاء وإرسال طلب إلى خدمة ويب.
Private Sub InitializeServiceObjects() request = New ContentService.getContentRequest() proxy = New ContentService.ContentServicePortTypeClient() document = New ContentService.requestedDocument(0) {} response = New ContentService.getContentResponse() appId = New ContentService.appId() components = New System.ComponentModel.Container() primaryDocumentsBindingSource = New System.Windows.Forms.BindingSource(components) End Sub
private void InitializeServiceObjects() { request = new ContentService.getContentRequest(); proxy = new ContentService.ContentServicePortTypeClient(); document = new ContentService.requestedDocument[1]; response = new ContentService.getContentResponse(); appId = new ContentService.appId(); components = new System.ComponentModel.Container(); primaryDocumentsBindingSource = new System.Windows.Forms.BindingSource(this.components); }
قم بإنشاء معالج أحداث لاسترداد مكتبة المستند MSDN حول عناصر تحكم المحتوى عندما يقوم مستخدم بالنقر داخل عنصر تحكم المحتوى ثم بربط البيانات إلى عنصر تحكم المحتوى.
Private Sub richTextContentControl_Entering _ (ByVal sender As Object, ByVal e As ContentControlEnteringEventArgs) _ Handles richTextContentControl.Entering document(0) = New ContentService.requestedDocument() With document(0) .type = ContentService.documentTypes.primary .selector = "Mtps.Xhtml" End With With request .contentIdentifier = "ed59e522-dd6e-4c82-8d49-f5dbcfcc950d" .locale = "en-us" .version = "VS.90" .requestedDocuments = document End With response = proxy.GetContent(appId, request) primaryDocumentsBindingSource.DataSource = _ response.primaryDocuments(0).Any.InnerText richTextContentControl.DataBindings.Add("Text", _ primaryDocumentsBindingSource.DataSource, "", True, _ System.Windows.Forms.DataSourceUpdateMode.OnValidation) End Sub
void richTextContentControl_Entering(object sender, ContentControlEnteringEventArgs e) { document[0] = new ContentService.requestedDocument(); document[0].type = ContentService.documentTypes.primary; document[0].selector = "Mtps.Xhtml"; request.contentIdentifier = "ed59e522-dd6e-4c82-8d49-f5dbcfcc950d"; request.locale = "en-us"; request.version = "VS.90"; request.requestedDocuments = document; response = proxy.GetContent(appId, request); primaryDocumentsBindingSource.DataSource = response.primaryDocuments[0].Any.InnerText; richTextContentControl.DataBindings.Add("Text", primaryDocumentsBindingSource.DataSource, "", true, System.Windows.Forms.DataSourceUpdateMode.OnValidation); }
قم باستدعاء الأسلوب التالي من AddRichTextControlAtRange ،وأساليب InitializeServiceObjects ،من أسلوب ThisAddIn_Startup . لمبرمجين C# ، قم بإضافة معالج أحداث.
Private Sub ThisAddIn_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup AddRichTextControlAtRange() InitializeServiceObjects() End Sub
private void ThisAddIn_Startup(object sender, System.EventArgs e) { AddRichTextControlAtRange(); InitializeServiceObjects(); this.richTextContentControl.Entering += richTextContentControl_Entering; }
اختبار الوظائف الإضافية
عند فتح عنصر تحكم Word RichTextContentControl يظهر. النص الموجود في عنصر التحكم يتغير عند النقر داخله.
لاختبار الوظيفة الإضافية
اضغط المفتاح F5.
انقر داخل محتويات عنصر تحكم المحتويات.
يتم تنزيل معلومات من خدمة محتوى MTPS وعرضها داخل عنصر تحكم المحتوى.