主頁(yè) > 知識(shí)庫(kù) > 無(wú)法將類型為“System.Web.UI.WebControls.HiddenField”的對(duì)象強(qiáng)制轉(zhuǎn)換為類型的錯(cuò)誤的解決

無(wú)法將類型為“System.Web.UI.WebControls.HiddenField”的對(duì)象強(qiáng)制轉(zhuǎn)換為類型的錯(cuò)誤的解決

熱門標(biāo)簽:銅川小型外呼系統(tǒng)運(yùn)營(yíng)商 陜西人工外呼系統(tǒng)哪家好 浙江外呼系統(tǒng)怎么安裝 山西防封卡電銷卡套餐 上海楊浦怎么申請(qǐng)申請(qǐng)400電話 廈門商鋪地圖標(biāo)注 地圖標(biāo)注多個(gè)行程 海外地圖標(biāo)注門市標(biāo) 云南外呼電銷機(jī)器人系統(tǒng)
本文章將解決:
1.解釋什么是System.Web.UI.LiteralControl
2.為什么會(huì)經(jīng)常發(fā)生法將類型為“System.Web.UI.WebControls.HiddenField”的對(duì)象強(qiáng)制轉(zhuǎn)換為類型……的錯(cuò)誤
3.GridView控件中查找模板列的控件(解釋Cells和Controls)

在用GridView控件綁定數(shù)據(jù)時(shí),經(jīng)常會(huì)要將某列轉(zhuǎn)換為模板列,如:
我們?cè)陧?yè)面中拉一控件GridView,名字:GVData,將其中某列轉(zhuǎn)換為模板列,在這里我們轉(zhuǎn)換的是列“所屬單位”,頁(yè)面模板列部分代碼如下:
asp:TemplateField HeaderText="所屬單位">
EditItemTemplate>
asp:HiddenField ID="HDFxz" runat="server" Value='%#Bind("所屬單位") %>' />
asp:DropDownList ID="DDLxz" runat="server" />
/EditItemTemplate>
ItemTemplate>
asp:Label ID="Label1" runat="server" Text='%# return2dwNAME(Eval("所屬單位").ToString()) %>'>/asp:Label>
/ItemTemplate>
/asp:TemplateField>
由上大家可以看到,這個(gè)模板列的編輯模板下有兩個(gè)控件,一個(gè)是隱藏域HDFxz,一個(gè)是下拉列表DDLxz,然后我們?cè)?cs頁(yè)面中取下拉列表DDLxz的值,部分代碼:
protected void GVData_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string dwid = ((DropDownList)this.GVData.Rows[e.RowIndex].Cells[2].Controls[1]).SelectedValue;

}
注:以上是修改數(shù)據(jù)時(shí)觸發(fā)的,我們放到這里只是為了說(shuō)明問(wèn)題,不是全部代碼,沒(méi)有實(shí)際意義。
我們來(lái)解釋下,e.RowIndex是取得當(dāng)前修改數(shù)據(jù)行的索引值,this.GVData.Rows[e.RowIndex]這個(gè)是由當(dāng)前索引獲得當(dāng)前行,Cells[2]表示是當(dāng)前行下的第三列(從0開(kāi)始算起),Controls[1]表示第三列下的第二個(gè)控件(也是從0算起),這樣解釋后我們就可以明白了,dwid 的值應(yīng)當(dāng)是要取的是下拉列表框DDLxz的值了(因?yàn)橄吕斜砜蛟诰庉嬆0逯袑儆诘诙€(gè)控件,這個(gè)我們?cè)谏厦嫣岬竭^(guò))。
運(yùn)行后會(huì)出錯(cuò):無(wú)法將類型為“System.Web.UI.LiteralControl”的對(duì)象強(qiáng)制轉(zhuǎn)換為類型“System.Web.UI.WebControls.DropDownList”。

可能大家都很納悶了,再返回去檢查一遍,沒(méi)有數(shù)錯(cuò)啊,這時(shí)我們就要看看到底什么是System.Web.UI.LiteralControl控件了?
System.Web.UI.LiteralControl:簡(jiǎn)單的解釋是任何不需要在服務(wù)器上處理的其他字符串.
這也就是說(shuō)我們上面的編輯模板存在“不需要在服務(wù)器上處理的其他字符串”,那會(huì)是什么在搞鬼呢。
經(jīng)過(guò)分析這句話“其他字符串”,然后再看下模板列的源碼,懷疑是由于生成了模板列后產(chǎn)生了空格產(chǎn)生的,因?yàn)榭崭褚彩亲址?,所以將源碼修改為:
asp:TemplateField HeaderText="所屬單位">
EditItemTemplate>asp:HiddenField ID="HDFxz" runat="server" Value='%#Bind("所屬單位") %>' />asp:DropDownList ID="DDLxz" runat="server" />/EditItemTemplate>
ItemTemplate>
也就是說(shuō)把EditItemTemplate標(biāo)簽之間的空格去掉。這時(shí)我們?cè)龠\(yùn)行,OK,大功告成啊,呵呵,原來(lái)真的是空格在搞鬼?。?net把空格當(dāng)成了System.Web.UI.LiteralControl了,呵呵!
您可能感興趣的文章:
  • System.Web中不存在類型或命名空間名稱“Optimization”(是否缺少程序集引用?)
  • System.Web中不存在類型或命名空間名稱script 找不到System.Web.Extensions.dll引用

標(biāo)簽:孝感 西雙版納 信陽(yáng) 許昌 常州 朔州 萊蕪 自貢

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《無(wú)法將類型為“System.Web.UI.WebControls.HiddenField”的對(duì)象強(qiáng)制轉(zhuǎn)換為類型的錯(cuò)誤的解決》,本文關(guān)鍵詞  無(wú)法,將,類型,為,System.Web.UI.WebControls.HiddenField,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《無(wú)法將類型為“System.Web.UI.WebControls.HiddenField”的對(duì)象強(qiáng)制轉(zhuǎn)換為類型的錯(cuò)誤的解決》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于無(wú)法將類型為“System.Web.UI.WebControls.HiddenField”的對(duì)象強(qiáng)制轉(zhuǎn)換為類型的錯(cuò)誤的解決的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章