У меня есть базовая сетка на 1 стол.У меня есть поле с именем Тип филиала.Тип филиала может быть только корпоративный или франшизный.Когда я нажимаю кнопку редактирования в строке ASPxgridview, я хотел бы отобразить и скрыть поля в форме редактирования, в зависимости от того, какой это тип ветви.Так что, если это корпоративный, я хотел бы отобразить поле диспетчера и скрыть поле владельца.Когда тип ветви - Франшиза, я хотел бы, чтобы поле Владелец отображалось, а поле Менеджер было скрыто в форме редактирования.все детали могут отображаться в виде сетки, но в форме редактирования я хотел бы заставить пользователя заполнять только соответствующие поля.
Если вы посмотрите ниже:
это в основном то, что я хочучтобы достичь при загрузке формы редактирования:
protected void ASPxGridViewStores_CellEditorInitialize(object sender, ASPxGridViewEditorEventArgs e)
{
if (!ASPxGridViewStores.IsEditing || e.Column.FieldName != "StoreOwnershipID") return;
if(e.KeyValue == DBNull.Value || e.KeyValue == null) return;
object val = ASPxGridViewStores.GetRowValuesByKeyValue(e.KeyValue, "S_ID");
if(val == DBNull.Value) return;
int StoreOwnershipID = (Int32)val;
if (StoreOwnershipID == 4)
{ ASPxComboBox ManagerID = (ASPxComboBox)ASPxGridViewStores.FindEditFormTemplateControl("ManagerID");
ManagerID.Enabled = true;
ASPxComboBox ContactID = (ASPxComboBox)ASPxGridViewStores.FindEditFormTemplateControl("ContactID");
ManagerID.Enabled = true;
}
else
{ ASPxComboBox ManagerID = (ASPxComboBox)ASPxGridViewStores.FindEditFormTemplateControl("ManagerID");
ManagerID.Enabled = false;
ASPxComboBox ContactID = (ASPxComboBox)ASPxGridViewStores.FindEditFormTemplateControl("ContactID");
ManagerID.Enabled = false;
}
}
, а затем в зависимости от выбора Corporate или Franchise в поле «StoreOwnershipID» я буду использовать скрипт на стороне клиента для включения или отключения дополнительных полей.
Я также провел некоторые исследования и придумал следующий код:
SelectedIndexChanged="function(s, e) {
var value = s.GetValue();
if(value == 4)
GridViewStores.GetEditor("OwnerName").SetVisible(true);
else
GridViewStores.GetEditor("OwnerName").SetVisible(false);
}"
, но когда он вызывается, я получаю следующую ошибку:
Ошибка времени выполнения Microsoft JScript:'GridViewStores' не определен
Я добавил HTTP-обработчик в web.config:
<httpModules>
<add type="DevExpress.Web.ASPxClasses.ASPxHttpHandlerModule, DevExpress.Web.v10.2, Version=10.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" name="ASPxHttpHandlerModule" />
</httpModules>
и
<system.webServer>
<modules>
<add type="DevExpress.Web.ASPxClasses.ASPxHttpHandlerModule, DevExpress.Web.v10.2, Version=10.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" name="ASPxHttpHandlerModule" />
</modules>
, как вы можете видеть ниже, я вставилClientInstanceName,
Я изменил ClientIDMode с AutoID на Inherit на Static на Predictable, и каждый сценарий не работает и по-прежнему отображается: ошибка времени выполнения Microsoft JScript: 'ASPxGridview 'не определено.
ниже моего тега gridview
<dx:ASPxGridView ID="ASPxGridView" runat="server" AutoGenerateColumns="False"
ClientIDMode="Predictable" DataSourceID="SqlDataSource1" KeyFieldName="S_ID"
ClientInstanceName="ASPxGridView">
Теперь я даже попытался создать новую страницу, используя только sqldatasource и gridview с полем storetype в качестве acombobox и включив JavaScript какупоминается в моих предыдущих постах .. и не повезло вообще.я дал вам свои настройки web.config, где я объявил httphandler, так что еще вы предлагаете мне сделать, чтобы это заработало?
вот мой webconfig:
раздел позволяет настроить режим аутентификации безопасности, используемый ASP.NET для идентификации входящего пользователя.-> раздел позволяет настроить, что делать, если / когда во время выполнения запроса возникает необработанная ошибка.В частности, он позволяет разработчикам настраивать отображение страниц ошибок html вместо трассировки стека ошибок.
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
<httpModules>
<add type="DevExpress.Web.ASPxClasses.ASPxHttpHandlerModule, DevExpress.Web.v10.2, Version=10.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" name="ASPxHttpHandlerModule" />
</httpModules>
<httpHandlers>
<add type="DevExpress.Web.ASPxClasses.ASPxHttpHandlerModule, DevExpress.Web.v10.2, Version=10.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" verb="GET" path="DX.ashx" validate="false" />
</httpHandlers>
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" />
извините за длинный вопрос.кстати это использует DevExpress Gridview.Ребята из devexpress не могут мне помочь и так 1 день отвечают на вопрос, так что это продолжается уже почти неделю ...
Спасибо, Вернер