[英]Asp.net Formview using C#
我有一個綁定到objectdatasource的formview。 哪個objectdatasource從列表集合中獲取其值。 為了實現級聯下拉列表,我不得不切換到下拉列表的文本框控件很少。 值填充良好,級聯的dropdownlist很好用,但是在插入時,我得到了這個令人討厭的無用信息
“指數數組的邊界之外。” 因此,我一直在努力弄清這一點並不能。
假設這是我的下拉列表導致的問題,因為我手動綁定它們,所以我嘗試將此代碼添加到后面的代碼中,因此它們沒有Text ='<%#Bind(“ GroupID”)%>
protected void formGroupInput_ItemInserting(object sender, FormViewInsertEventArgs e)
{
if (formGroupInput.CurrentMode == FormViewMode.Insert)
{
e.Values["ddlStartTime"] = ((DropDownList)((FormView)sender).FindControl("ddlStartTime")).SelectedItem;
e.Values["ddlEndTime"] = ((DropDownList)((FormView)sender).FindControl("ddlEndTime")).SelectedItem;
e.Values["ddlRoomName"] = ((DropDownList)((FormView)sender).FindControl("ddlRoomName")).SelectedItem;
e.Values["ddlJackNumber"] = ((DropDownList)((FormView)sender).FindControl("ddlJackNumber")).SelectedItem;
e.Values["ddlInternetType"] = ((DropDownList)((FormView)sender).FindControl("ddlInternetType")).SelectedItem;
}
}
我猜想它與此有關,因為當我嘗試通過在DLL中的輸入法上放置一個斷點來調試它時,它甚至在顯示錯誤之前都沒有達到斷點。
謝謝
填充代碼下拉列表
protected void formGroupInput_DataBound(object sender, EventArgs e)
{
if (formGroupInput.CurrentMode == FormViewMode.Insert)
{
DropDownList roomName = (DropDownList)(formGroupInput.Row.FindControl("ddlRoomName"));
roomName.DataSource = getrooms.FetchRooms();
roomName.DataTextField = "RoomName";
roomName.DataValueField = "intRoom";
roomName.DataBind();
****Same concept for other 2 dropdownlist ******
}
}
頁面加載我稱之為
protected void Page_Load(object sender, EventArgs e)
{
DropDownList startTime = (DropDownList)(formGroupInput.Row.FindControl("ddlStartTime"));
if (startTime.Items.Count == 0)
{
startTime.Items.Add("12:00AM");
startTime.Items.Add("12:30AM");
for (int i = 1; i <= 11; i++)
{
startTime.Items.Add(i + ":00AM");
startTime.Items.Add(i + ":15AM");
startTime.Items.Add(i + ":30AM");
}
startTime.Items.Add("12:00PM");
startTime.Items.Add("12:30PM");
for (int i = 1; i <= 11; i++)
{
startTime.Items.Add(i + ":00PM");
startTime.Items.Add(i + ":15PM");
startTime.Items.Add(i + ":30PM");
}
}
DropDownList endTime = (DropDownList)(formGroupInput.Row.FindControl("ddlEndTime"));
if (endTime.Items.Count == 0)
{
Same As Above
}
以后只供此問題的訪客使用。 如果您綁定了一個Int32參數,但尚未在Formview中設置該參數,則控件的值為空字符串,則會發生這種情況。 空字符串會導致Int32解析錯誤。 在您的ObjectDataSource控件中,您需要這樣的內容:
<InsertParameters>
<asp:Parameter Name="MyParameterName" Type="Int32" ConvertEmptyStringToNull="true" />
</InsertParameters>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.