我正嘗試使用Formview的InsertItemTemplate中的更新面板。當從一個DropDownlist中選擇「其他」時,另一個下拉列表將被隱藏。當我刪除更新面板這工作正常,記錄創建沒有問題。但是,當DropDownList在UpdatePanel中時,我在插入時出現以下錯誤:將數據綁定到更新面板中的SQLDataSource時出錯
Oracle.DataAccess.Client.OracleException:ORA-01008:並非所有變量都被綁定。
我沒有包括所有的ASP.NET和代碼,請問你是否想看其他的東西,還有更多的綁定字段和大量的數據驗證。下面是ASP.NET的一部分:
<asp:Formview
ID="fvJobs"
DataSourceID="fvSqlDataSource"
DataKeyNames="JOB_ID"
DefaultMode="Edit"
OnItemInserting="fvJobs_FileUpl"
OnItemInserted="fvJobs_ItemInserted"
OnItemupdating="fvJobs_FileUp2"
OnItemUpdated="fvJobs_ItemUpdated"
runat="server">
<asp:DropDownList ID="InsertLocList"
SelectedValue='<%# Bind("JOB_LOCATION") %>'
Autopostback="true"
CssClass="ddl"
OnSelectedIndexChanged="InsertLocList_IndexChanged"
RunAt="Server" >
<asp:ListItem Text="--Select One--" Value="-1" />
<asp:ListItem Text="California" Value="CA" />
<asp:ListItem Text="New York" Value="NY" />
<asp:ListItem Text="Pennsylvania" Value="PA" />
<asp:ListItem Text="Texas" Value="TX" />
<asp:ListItem Text="Other" Value="O" />
</asp:DropDownList></label>
<asp:UpdatePanel ID="UpdatePanel1"
UpdateMode="Conditional"
runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="InsertLocList" />
</Triggers>
<contentTemplate>
<span><asp:label id="InsertCatLbl" runat="server"><b>Subsidiary:</b></asp:label></span>
<asp:DropDownList ID="InsertCatList"
SelectedValue='<%# Bind("JOB_CATEGORY") %>'
CssClass="ddl"
RunAt="Server" >
<asp:ListItem Text="--Select One--" Value="-1" />
<asp:ListItem Text="SRC" Value="SRC" />
<asp:ListItem Text="FRN" Value="FRN" />
<asp:ListItem Text="SUPDIST" Value="SUPDIST" />
<asp:ListItem Text="Stream" Value="STREAM" />
</asp:DropDownList>
</contentTemplate>
</asp:UpdatePanel>
下面是一些背後的代碼:
Protected Sub InsertLocList_IndexChanged(sender As Object, e As EventArgs)
Dim ddlLoc As DropDownList = _
CType(fvJobs.FindControl("InsertLocList"), DropDownList)
Dim ddlCat As DropDownList = _
CType(fvJobs.FindControl("InsertCatList"), DropDownList)
Dim catLbl As Label = _
CType(fvJobs.FindControl("InsertCatlbl"), Label)
If ddlLoc.SelectedValue = "O"
ddlCat.selectedvalue="SRC"
ddlCat.visible=false
catLbl.visible=false
else
ddlCat.visible = true
catLbl.visible = true
end if
end sub
奇怪的是這完美的作品,如果我刪除的UpdatePanel。我無法弄清楚爲什麼更新面板中的綁定似乎沒有工作。我用我能想到的每一種方式說明了谷歌搜索,我似乎無法找到任何有類似問題的人,任何幫助將不勝感激,謝謝。
UPDATE 這裏是FormView控件在SqlDataSource:
<asp:SqlDataSource ID="fvSqlDataSource"
ConnectionString="<%$ ConnectionStrings:Oracle %>"
ProviderName="<%$ ConnectionStrings:Oracle.ProviderName %>"
SelectCommand="SELECT JOB_DESC, JOB_ID, JOB_CATEGORY, JOB_LOCATION, JOB_DATE_BEGIN, JOB_DATE_CLOSED, JOB_FILENAME, JOB_SHOW_INDIC from JOB_POSTING WHERE JOB_ID = :JOB_ID"
RunAt="server"
UpdateCommand="UPDATE JOB_POSTING SET JOB_DESC=:JOB_DESC, JOB_LOCATION=:JOB_LOCATION, JOB_CATEGORY=:JOB_CATEGORY, JOB_DATE_BEGIN=TO_DATE(:JOB_DATE_BEGIN, 'MM/DD/YYYY'), JOB_DATE_CLOSED=TO_DATE(:JOB_DATE_CLOSED, 'MM/DD/YYYY'), JOB_FILENAME=:JOB_FILENAME,JOB_SHOW_INDIC=:JOB_SHOW_INDIC WHERE JOB_ID=:JOB_ID"
InsertCommand="INSERT INTO JOB_POSTING(JOB_DESC, JOB_ID, JOB_LOCATION, JOB_CATEGORY, JOB_DATE_BEGIN, JOB_DATE_CLOSED, JOB_FILENAME, JOB_SHOW_INDIC)
VALUES
(:JOB_DESC, :JOB_ID, :JOB_LOCATION, :JOB_CATEGORY, TO_DATE(:JOB_DATE_BEGIN, 'MM/DD/YYYY'), TO_DATE(:JOB_DATE_CLOSED, 'MM/DD/YYYY'), :JOB_FILENAME, :JOB_SHOW_INDIC)"
>
<SelectParameters>
<asp:Parameter Name="JOB_ID" Type="String" DefaultValue="0" />
</SelectParameters>
<UpdateParameters>
<asp:parameter Name="JOB_ID" Type="String" DefaultValue="0"/>
</UpdateParameters>
</asp:SqlDataSource>
您的SqlDataSource與顯示的標記相關的地方在哪裏? – jadarnel27
在.aspx頁面的底部。 – user2607172
你應該把它放在你的FormView中的UpdatePanel裏面。 – jadarnel27