0

asp.netmvcアプリケーションに次のようなTelerikグリッドがあります。

スクリーンショット

これで、グリッドのすぐ上に配置されたリストから選択されたゾーン内のすべての領域が一覧表示されます。zoneidは、グリッド内の外部キーです。ここで、グリッドに新しい領域を追加するときに、グリッドのゾーン列にあるものではなく、リストからゾーンIDを取得する必要があります。これは、その値がゾーンを表示するためだけのものであり、グリッドから次のように削除することもできるためです。リストされたリージョンが属するゾーンがリストから明らかです。

編集時にグリッド内にこのリストを表示するためにエディターテンプレートを使用できたと理解していますが、ゾーンごとに多くの領域がある可能性があるため、グリッド外に配置し、ゾーンに基づいてフィルタリングを提供することをお勧めします。したがって、ここでの私の懸念は、グリッドコントロールのすぐ上に表示されるリストの選択された値に等しい領域(編集または新しく追加された)のZoneIDをどのように設定できるかということです。

4

2 に答える 2

0

[AddNewRecord]ボタンをクリックしたときに、ゾーンの値をコンボボックスの値で選択したzoneIdと等しくなるように設定してみませんか?

私は少し似たようなことをしましたが、Treeviewから値を取得する必要がありました。

    private void btnAddContact_Click(object sender, EventArgs e)
    {
        Int64 companyId = Int64.Parse(treeCompany.SelectedNode.Name);

        dsSociete.ContactRow newContact = dsSociete.Contact.NewContactRow();
        newContact.SocieteId = societeId;
        dsSociete.Contact.AddContactRow(newContact);
    }

そして、新しい連絡先を追加すると、その会社(Societeはフランス語でCompany)セットが自動的に取得されます。

私はWinformでそれを行いましたが、Webでも同じことができると思いますか?

于 2010-12-12T23:46:50.577 に答える
0

Telerik グリッドの onSave イベントを次のようにフックすることで、この問題を解決しました。

<%
Html.Telerkik.Grid<xyz.company>()
.Name("name")
.// other properties
.Events(even=>even.onSave("onSave")
.Render();%>

JS の onSave イベント ハンドラ内に、次のようなものを書きました。

function onSave(e)
{
    var data = e.values;
    data["companyID"] = $("#CompanySelectList").val();
    e.values = data;
    return true;
}

onSave イベントは、サーバーに送信される json の companyID インデックスに companyID を追加し、modelbinder はそれをモデルのプロパティ名に関連付けます。

于 2010-12-15T08:45:53.583 に答える