Obout DropDownList показывает неправильный выбор при добавлении нового
При загрузке первой страницы в раскрывающемся списке в шаблоне редактирования отображается значение "выберите нужное значение" и выбранное значение равно 0. Но когда я изменяю это значение, то при следующем следующем добавлении нового выбранный индекс, показанный в раскрывающемся списке, является предыдущим. в то время как это должно показать, выберите пожалуйста для каждого нового элемента. Я перепробовал все возможные пути, но все прошло напрасно. Вот мой код.
<cc1:Grid ID="gridStaff" runat="server" FolderStyle="~/Styles/premiere_blue" Width="600px" AllowAddingRecords="true" AllowFiltering="false" CallbackMode="true" Serialize="true" AllowColumnReordering="true" AllowPaging="true" AutoGenerateColumns="false" EnableRecordHover="true" EnableTypeValidation="false" PageSize="25" OnRebind="RebindGrid" OnInsertCommand="InsertRecord" OnDeleteCommand="DeleteRecord" OnUpdateCommand="UpdateRecord" OnRowDataBound="gridStaff_RowDataBound" >
<ClientSideEvents OnBeforeClientDelete="Row_Deleting" />
<ScrollingSettings ScrollWidth="100%" />
<Columns>
<cc1:Column DataField="SalesPerson_Id" Visible="false" ReadOnly="true"
HeaderText="SalesPerson ID" runat="server">
<TemplateSettings RowEditTemplateControlId="SalesPerson_Id" RowEditTemplateControlPropertyName="value" />
</cc1:Column>
<cc1:Column DataField="SalesPerson_ID_V3Account" HeaderText="Username" Width="20%" runat="server">
<TemplateSettings TemplateId="SalesPerson_V3Account" RowEditTemplateControlId="SuperForm1_SalesPerson_ID_V3Account" RowEditTemplateControlPropertyName="value" />
</cc1:Column>
</Columns>
<ClientSideEvents OnClientEdit="onAddEdit" OnBeforeClientUpdate="onBeforeInsertUpdate" OnClientPopulateControls="onClientPopulateControls"
OnBeforeClientInsert="onBeforeInsertUpdate" OnBeforeClientCancelEdit="onBeforeClientCancelEdit" OnClientCancelEdit ="onBeforeClientCancelEdit" />
<Templates>
<cc1:GridTemplate runat="server" ID="SalesPerson_V3Account">
<Template>
<%# GetUserNameById(Convert.ToInt32(Container.DataItem["SalesPerson_ID_V3Account"]))%>
</Template>
</cc1:GridTemplate>
</Templates>
<TemplateSettings RowEditTemplateId="tplRowEdit" />
<Templates>
<cc1:GridTemplate runat="server" ID="tplRowEdit">
<Template>
<input type="hidden" id="SalesPerson_Id" />
<table width="100%" class="rowEditTable">
<tr>
<td>
<fieldset style="padding:5px; width:100%;">
<legend>Sales Person Detail</legend>
<table>
<tr>
<td>V3 Account
</td>
<td>
<cc3:OboutDropDownList ClientIDMode="Static" runat="server" ID="SuperForm1_SalesPerson_ID_V3Account" Width="300" Height="175"
DataSourceID="odsQCSUsers" DataTextField="username" AppendDataBoundItems="true" DataValueField="user_Id">
<asp:ListItem Text="Please Select" Value="Please Select" Selected="True"> </asp:ListItem>
</cc3:OboutDropDownList>
</td>
</tr>
</table>
</fieldset>
</td>
</tr>
<tr>
<td >
<cc3:OboutButton runat="server" FolderStyle="~/Styles/premiere_blue/interface/OboutButton" Text="Save" OnClientClick="gridStaff.save(); return false;" ValidationGroup="1"
Width="75" />
<cc3:OboutButton runat="server" FolderStyle="~/Styles/premiere_blue/interface/OboutButton" Text="Cancel" OnClientClick="grid.cancel(); return false;"
Width="75" />
</td>
</tr>
</table>
</Template>
</cc1:GridTemplate>
</Templates>
</cc1:Grid>
Редактирование:
Временно, я решил эту проблему, используя ClientSideEvents, т.е. функцию OnClientPopulateControls. Я просто добавил следующие строки в моем Gridview.
<ClientSideEvents OnClientPopulateControls="onClientPopulateControls"/>
function onClientPopulateControls(record,type) {
if (type == "add")
{
record.SalesPerson_ID_V3Account = "Please Select";
record.SalesPerson_TeamType="Please Select";
}
}
Но, все еще ищем лучшее и надежное решение. Спасибо!