Не могу установить LinqDataSource InsertParameters из моего кода позади - PullRequest
0 голосов
/ 31 марта 2010

У меня есть следующий код, который, кажется, должен установить мой insertParameter, но каждый раз, когда происходит вставка, он использует параметр по умолчанию. Нужно ли делать что-то особенное, чтобы сделать эту работу?

Codebehind:

protected void SetInsertParams(object sender, LinqDataSourceInsertEventArgs e)
    {
        if (lbl_Personnel.Visible)
        {
            lds_Personnel.InsertParameters["BudgetLineTypeCode"].DefaultValue = "S";
        }
        else if(lbl_Operating.Visible)
        {
            lds_Personnel.InsertParameters["BudgetLineTypeCode"].DefaultValue = "O";
        }
        else if (lbl_SubContractor.Visible)
        {
            lds_Personnel.InsertParameters["BudgetLineTypeCode"].DefaultValue = "C";
        }
    }

со страницы aspx:

        <asp:LinqDataSource ID="lds_Personnel" runat="server" OnSelecting="SetParams"
            ContextTypeName="nrm.FRGPproposal.FrgpropDataContext"
            TableName="BudgetLines" OnInserted="lds_Personnel_OnInserted" OnInserting="SetInsertParams" 
            Where="ProposalID == @PropNumber &amp;&amp; BudgetLineTypeCode == @BudgetLineTypeCode" 
            EnableDelete="True" EnableInsert="True" EnableUpdate="True">
            <WhereParameters>
                <asp:SessionParameter Name="PropNumber" SessionField="PropNumber" Type="Int32" />
                <asp:Parameter DefaultValue="S" Name="BudgetLineTypeCode" Type="Char" />
            </WhereParameters>
            <InsertParameters>
                <asp:SessionParameter Name="ProposalID" SessionField="PropNumber" Type="Int32"/>    
                <asp:Parameter DefaultValue="S" Name="BudgetLineTypeCode" Type="Char" />          
            </InsertParameters>
        </asp:LinqDataSource>

1 Ответ

0 голосов
/ 31 марта 2010

Нашел решение. Смотрите обновленную функцию ниже:

protected void SetInsertParams(object sender, LinqDataSourceInsertEventArgs e)
    {
        BudgetLine bl = (BudgetLine)e.NewObject;
        if (lbl_Personnel.Visible)
        {
            bl.BudgetLineTypeCode = 'S';
            //lds_Personnel.InsertParameters["BudgetLineTypeCode"].DefaultValue = "S";
        }
        else if(lbl_Operating.Visible)
        {
            bl.BudgetLineTypeCode = 'O';
            //lds_Personnel.InsertParameters["BudgetLineTypeCode"].DefaultValue = "O";
        }
        else if (lbl_SubContractor.Visible)
        {
            bl.BudgetLineTypeCode = 'C';
            //lds_Personnel.InsertParameters["BudgetLineTypeCode"].DefaultValue = "C";
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...