我爲Sitefinity網站的後端設置了一個小部件,該站點有三個文本框和一個按鈕。我們的目標是在數據庫中創建新列:爲什麼Type.GetType在sitefinity中使用telerik類型返回null?
protected void btnAddClick(object sender, EventArgs e)
{
Type TelerikType = Type.GetType(txtTelType.Text);
Type ColumnType = Type.GetType(txtColType.Text);
string error = "";
if (TelerikType == null)
{
error = "Telerik Type is invalid";
}
if (ColumnType == null)
{
error = "Column Type is invalid";
}
if (error.Length == 0)
{
App.WorkWith()
.DynamicData()
.Type(TelerikType)
.Field()
.TryCreateNew(txtName.Text, ColumnType)
.SaveChanges(true);
error = "Added column successfully";
txtColType.Text = txtName.Text = txtTelType.Text = "";
}
literalErrorText.Text = string.Format(literalErrorText.Text, error);
}
我有兩個問題:
當我進入Telerik.Sitefinity.Pages.Model.PageNode到文本框中,鍵入。 GetType(txtTelType.Text)返回null。
如果我用typeof(PageNode)替換那部分,我得到「指定類型'Telerik.Sitefinity.Pages.Model.PageNode'不是動態類型。」
我希望有人可能會有一些洞見,爲什麼這些事情不會正常工作,或者可能更好的方法來解決這個問題?作爲參考,我的目標(至少現在)是添加一個引用PageNode的動態列,以便我可以指定一個ShowInLeftNavigation布爾值和一個ShowInRightNavigation布爾值。感謝您提供任何幫助。
問題是否您正在檢查的Telerik控件解析爲字符串..?如果是這樣,你可以做if語句if(TelerikType == string.isEmptyOrNull)..? – MethodMan 2011-12-15 19:56:26
最好使用Equals關鍵字檢查對象,並在檢查int a = 5時檢查對象; b int = 6如果您想檢查值或值類型是否等於某個使用「==」的值,則返回值爲 – MethodMan 2011-12-15 20:02:11
TelerikType的類型爲Type。另外,如果我嘗試使用帶有空對象的.Equals,我不會得到空引用異常嗎? – 2011-12-15 20:09:01