如何从c#获取splittbutton中的复选框值?

时间:2017-06-19 18:10:06

标签: javascript c# visual-studio extjs ext.net

我在EXT.NET中遇到问题。我在EXT.NET中有下一个结构

<ext:SplitButton runat="server" ID="btnExcel" Icon="PageExcel" ToolTip="Something text" Cls="ReportesButton" OverCls="ReportesButtonOver">
        <Bin>
            <ext:Menu runat="server" ID="Menu3">
                <Items>
                    <ext:Panel runat="server" ID="Panel17" Width="180" Height="25" Layout="VBoxLayout">
                        <Items>
                            <ext:Checkbox runat="server" ID="chkbox" Checked="false" IndicatorText="Something text">
                                <Listeners>
                                    <Change Handler="#{btnExcel}.bin[0].hide();"></Change>
                                </Listeners>
                            </ext:Checkbox>
                        </Items>
                    </ext:Panel>
                </Items>
            </ext:Menu>
        </Bin>
        <Listeners>
            <ArrowClick Handler="this.bin[0].show(); this.bin[0].alignTo(this.el);"></ArrowClick>
        </Listeners>
</ext:SplitButton>  

直到这一刻,一切都很好,但是当我尝试使用chkbox.Checked或chkbox.Value在我的.cs类中获取值时,值始终为false,即使我更改了复选框值。我从来没有遇到chkbox.Checked使用复选框从另一种方式的问题。我将不胜感激。我使用EXT.NET 3.1

2 个答案:

答案 0 :(得分:0)

代码隐藏只会看到页面最初的值(只要在标记中定义,而不是来自Page_Load()等调用之后的其他代码),除非您以某种方式提交了值。每次调用代码时,Ext.NET都不会提交所有内容,因此问题不一定在您提供或显示的代码段中,而是您调用代码的方式。

通常,formPanel中的表单字段是在调用后的代码上提交的,但这取决于您调用代码的方式。

在您的情况下,您可能需要在直接事件/方法调用中使用 ExtraParameter 传递复选框的当前值。但实际上,这取决于你如何调用代码。

对于传递复选框值的DirectEvent处理按钮,它将是:

<ext:Button runat="server" Text="Check">
    <DirectEvents>
        <Click OnEvent="CheckCheckBoxValue">
            <ExtraParams>
                <ext:Parameter
                    Name="name"
                    Value="App.Panel17.down('checkbox').getValue()"
                    Mode="Raw"
                    />
            </ExtraParams>
        </Click>
    </DirectEvents>
</ext:Button>

基于DirectEvents - WebService example

的代码段

答案 1 :(得分:0)

额外参数可以是一个选项,但我所做的是改变控制和这种方式的结构:

.wrap {
  position: relative;
  padding: 0;
  margin: 0;
}

p {
  width: 200px;
  border: solid black 1px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  margin: 0;
}

span {
  position: absolute;
  left: 210px;
  top: 0;
  z-index: -1;
}

p:hover {
  overflow: visible;
  white-space: normal;
  width: auto;
  background-color: #FFF;
}

我认为结构必须与特定控件一起运行才能正常运行