0

devexpress コントロール (チェック ボックスなど) をコントローラーの html 文字列に「変換」する必要があります。それがページに見えるように。やり方を教えてください。

ページ:

<input name="myCheckBox" id="chB_S" style="width: 0px; height: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; position: relative; background-color: transparent;" readonly="readonly" value="I"/>

コントローラ:

CheckBoxSettings s = new CheckBoxSettings();
s.Name = "myCheckBox";
s.Properties.ClientSideEvents.ValueChanged = "function(s,e){alert('Selection changed');}";
CheckBoxExtension chBut = new CheckBoxExtension(s);        
string zzz = chBut.GetHtml().ToHtmlString(); //Get empty string instead of html
4

1 に答える 1

0
public static string RenderView(string path, object data)
{
    Page pageHolder = new Page();
    UserControl viewControl = (UserControl) pageHolder.LoadControl(path);

    if (data != null)
    {
        Type viewControlType = viewControl.GetType();            
        FieldInfo field = viewControlType.GetField("Data");

        if (field != null)
        {
            field.SetValue(viewControl, data);
        }
        else
        {
            throw new Exception("View file: " + path + " does not have a public Data property");
        }
    }

    pageHolder.Controls.Add(viewControl);

    StringWriter output = new StringWriter();
    HttpContext.Current.Server.Execute(pageHolder, output, false);

    return output.ToString();
}

上記のメソッドを ASP.NET アプリケーションで使用して、UserControl を HTML に変換できます。コントロールを Html に変換するカスタム RenderView を作成するためのガイドとして参照できます。

さらに(MVCについてはわかりません)、asp.netではすべてのコントロールがWebControlsから派生しているため、同じこともできると思います。MVC コントロールの操作は、成功した場合に更新されます。

于 2013-04-26T09:29:13.693 に答える