0

SqlWhereBuilder.jsでドロップダウンにデータベースの値を入力するのに問題があります。valueentry構成ファイルと対応する.ascxおよび.ascx.csファイルを指定しました。.ascx.csファイルのクエリを確認すると、必要な値が返されます。しかし、Webサイトのフィルター機能のドロップダウンにこれらの値を入力できません。私がここで見逃しているものはありますか..私はこのコントロールを正しく使用していますか?

私のfieldsfileとoperatorlistsファイルはxmlから正しく入力されます。ただし、dbからの値のみが入力されません。

私の.aspxファイル:

<asp:Panel ID="panelContentCS" Style="overflow: hidden;" Width="650px" runat="server">
                                <div id="LayerCS" style="padding-left: 20px; padding-bottom: 10px; padding-top: 10px;
                                    padding-right: 10px;">
                                    <cc1:SqlWhereBuilder ID="swb1" runat="server" ClientCodeLocation="js/SqlWhereBuilder.js"
                                        FieldsFile="Configuration/fields.config" OperatorListsFile="Configuration/operatorLists.config"
                                        ValueEntryFile="Configuration/valueEntryDivs.config" NoConditionsText="Please Specify conditions"
                                        ButtonStyle="font-size: 10pt; background:whitesmoke;border:2px; border-style:solidline;"
                                        MainStyle="background-color:gainsboro;" ConditionCellStyle="border:1px solid black; padding:2px; background-color:#eeeeee"
                                        EditButtonText="Edit" DeleteButtonText="Delete" AddButtonText=" Add " EditButtonsHiliteColor="Gray"
                                        EditButtonsStyle="font-family: 'Arial'; font-size: 10pt; cursor:pointer;" ConditionDisplayStyle="font-family: 'Tahoma': font-size: 10pt; padding 2px;">
                                    </cc1:SqlWhereBuilder>
                                </div>
                            </asp:Panel>

私のvalueEntryDivs.config:

<valueEntry id="vCodeR" userControl="SQLBuilder/CodeR.ascx" />
<valueEntry id="vCodeQ" userControl="SQLBuilder/CodeQ.ascx" />
<valueEntry id="vCodeT" userControl="SQLBuilder/CodeT.ascx" />

私のCodeT.ascx:

    <%@ Control Language="C#" AutoEventWireup="false" CodeFile="CodeT.ascx.cs"     Inherits="CodeT" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
<asp:DropDownList id="ddCodeT" runat="server" DataValueField="CodeT" DataTextField="CodeT"></asp:DropDownList>

私のCodeT.ascx.cs:

public partial class CodeT : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        int count = 0;
        int j = 0;

        DbDataReader rdr = null;
        DbProviderFactory provider = Framework.ConnectionClass.GetDbFactory();
        DbConnection conn = null;
        conn = Framework.ConnectionClass.GetConnection("Code"); conn.Open();
        DbCommand cmd = provider.CreateCommand();
        cmd.CommandText = "SELECT [VALUE] AS CodeT  FROM tb_Searchcache WHERE LabelName = 'CodeT'";
        cmd.Connection = conn;

        if (!this.IsPostBack)
        {
            try
            {
                rdr =  Framework.DBClass.GetReader(ref cmd);
                ddCodeT.DataSource = rdr;
                ddCodeT.DataBind();
                count = ddCodeT.Items.Count;
                while (j < count)
                {
                    ddCodeT.Items[j].Value = "'" + ddCodeT.Items[j].Value + "'";
                    j = j + 1;
                }
            }
            finally
            {
                if ((rdr != null))
                {
                    rdr.Close();
                }
                cmd.Dispose();
                if (conn.State != ConnectionState.Closed)
                    conn.Close();

            }
        }
    }
}
4

1 に答える 1

0

かなりの時間を無駄にした後、AutoEventWireupを「true」に設定する必要があることに気づきました。ポストバックは何もトリガーしませんでした!

于 2013-03-06T23:46:01.540 に答える