هناك العديد من الطرق لتغيير الأسطح، وأبسطها عادةً هو تبديل صفحة CSS، وعادةً ما تتم كتابة CSS في ملف CSS خارجي. ثم يؤدي تبديل CSS إلى تغيير مسار الرابط href في html. لقد بحثت على الانترنت. توجد طريقتان عمومًا:
1. ضع عنصر تحكم الحامل على الصفحة. ثم اكتب رابط CSS لنمط المستخدم الحالي للصفحة برمجيًا.
2. قم بتعيين أنماط CSS على كل عنصر تحكم من خلال آلية الانعكاس.
الطريقتان المذكورتان أعلاه مزعجتان للغاية.
الأول يتطلب وضع عنصر تحكم حامل على كل صفحة. هناك طريقة مشابهة تتمثل في إضافة runat=server إلى علامة الارتباط. إذا كان هناك عدد كبير جدًا من الصفحات، فسيكون الأمر أكثر إزعاجًا.
ليست هناك حاجة للنظر في الثانية. هناك العديد من المشاكل المتعلقة بكفاءة برمجة الأداء.
أتذكر أنه عندما كنت أتعلم DNN، وجدت طريقة لتعديل عنوان الإجراء الافتراضي في النموذج، يرجى الرجوع إليه مباشرة. ليس سيئًا:
تجاوز حدث Render مباشرة
تجاوز محمي عرض باطلة (System.Web.UI.HtmlTextWriter الكاتب)
{
StringWriter sw = new StringWriter();
HtmlTextWriter htmlWriter = new HtmlTextWriter(sw);
base.Render(htmlWriter);
// نمط CSS المحدد بواسطة المستخدم الحالي
string css = "<link href="css url" rel="stylesheet" type="text/css">"
;
int startPoint = html.IndexOf("</head>", StringComparison.CurrentCultureIgnoreCase);
إذا (نقطة البداية > 0)
{
html = html.Insert(startPoint, css);
}
الكاتب.Write(html);
}
ضع هذا في PageBase للفئة الأساسية لكل صفحة. سيكون ذلك أكثر ملاءمة.
بالطبع، إذا كنت لا تريد أن ترث كل صفحة فئة أساسية مخصصة، فيمكنك أيضًا كتابتها في HttpModule. إنها أيضًا مريحة جدًا.
اكتبه في مكان واحد، وسيكون مفيدًا لكل صفحة.
http://www.cnblogs.com/kwklover/archive/2007/01/03/610822.html