0

新しいユーザーコントロールをドロップダウンでコーディングしています私のコードは

        <%@ Control Language="C#" AutoEventWireup="true" CodeFile="StylishDDL.ascx.cs" Inherits="JDropDown.Controls_StylishDDL" %>   
     <script src="Jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
        <script src="Jquery/jquery.selectbox-0.5.js" type="text/javascript"></script> 
        <script type="text/javascript">
                    $(document).ready(function () {
                        $('#ddlStytlish').selectbox();
                    });
        </script>
        <asp:DropDownList ID="ddlStytlish" runat="server" ClientIDMode="Static">
        </asp:DropDownList>

namespace JDropDown
{
    public partial class Controls_StylishDDL : UserControl
    {
        public string _selectedvalue = "";
        public int _selectedIndex = 0;
        public Controls_StylishDDL( )
        {

        }
        public Controls_StylishDDL(int selectedIndex , string selectedval)
        {
            SelectedIndx = selectedIndex;
            SelectedVal = selectedval;
        }

        public string SelectedVal
        {
            get
            {
                _selectedvalue = this.ddlStytlish.SelectedValue;
                return _selectedvalue;
            }
            set { _selectedvalue = value; }
        }

        public int SelectedIndx
        {
            get
            {
                _selectedIndex = this.ddlStytlish.SelectedIndex;
                return this._selectedIndex;
            }

            set { this._selectedIndex = value; }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            this.ddlStytlish.AutoPostBack = false;
            LoadStates();
        }

このコントロールを使用すると、選択されたインデックスが常に0で、選択された値が常にnullであることを除いて、正常に動作します。インデックスと値を維持する方法

4

1 に答える 1

-1

ユーザー コントロールの場合、状態を保持するには 2 つの選択肢があります。

  1. ユーザー コントロール プロパティは、それに含まれるコントロールのプロパティの単なるラッパーです (状態を保持します)。

  2. ユーザーコントロールは独自の状態を保持します

この場合、ユーザー コントロール (別のコントロールのラッパーのようなものです) は、get {} のドロップダウン リストからいくつかのプロパティを読み取りますが、それらを set {} に戻していません。1 つのオプションは次のとおりです。

public string SelectedVal
{
    get
    {
        _selectedvalue = this.ddlStytlish.SelectedValue;
        return _selectedvalue;
    }
    set 
    { 
        _selectedvalue = value; 
        this.ddlStytlish.SelectedValue = value; 
    }
}  

もう 1 つのオプションは、このビデオで説明されているように、ユーザー コントロールのプロパティを保持することです。

http://www.asp.net/web-forms/videos/how-do-i/how-do-i-persist-the-state-of-a-user-control-during-a-postback

于 2012-05-23T17:40:36.863 に答える