【发布时间】:2016-07-18 17:33:25
【问题描述】:
所以我在网格的编辑表单中有一个组合框...当我选择更新时,我想从组合框中获取所选项目,如果它代表更改,我将执行更新。为了我的一生……我承认自己生锈得厉害,我不知道自己做错了什么。我还尝试在 selectionchanged 事件中读取它并且不会触发:C
与往常一样,我非常感谢任何能够抽出时间为我指明正确方向的人...这是我最近的许多尝试。
protected void RadGrid1_UpdateCommand(object source, GridCommandEventArgs e)
{
if (e.CommandName == "Update")
{
GridEditableItem item = (GridEditableItem)e.Item;
RadComboBox combo =(RadComboBox)item.FindControl("updateComboBox");
var status = (string)item.GetDataKeyValue("status");
if (combo.SelectedItem.Text!= status)
{
//do my update
}
}
已编辑以添加 ASPX:
<telerik:GridTemplateColumn HeaderText="Category" ItemStyle-Width="240px">
<ItemTemplate>
<%#DataBinder.Eval(Container.DataItem, "Status")%>
</ItemTemplate>
<EditItemTemplate>
<telerik:RadComboBox RenderMode="Lightweight" runat="server" ID="updateComboBox" DataTextField="Status"
DataValueField="ID" DataSourceID="LinqDataSource1" SelectedValue='<%#Bind("ID") %>' AutoPostBack="False" EnableLoadOnDemand="True" CausesValidation="False">
</telerik:RadComboBox>
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridEditCommandColumn FooterText="EditCommand footer" UniqueName="EditCommandColumn"
HeaderText="Edit" HeaderStyle-Width="100px" UpdateText="Update">
</telerik:GridEditCommandColumn>
【问题讨论】:
-
问题到底出在哪里?组合框是否配置为按需加载项目?
-
@VeselinVasilev ...好吧,“大”问题基本上是我无法阅读组合框选定的文本。我一直在尝试遵循 Telerik 提供的示例,但没有运气。我所能得到的只是第一个(默认)值。如果我设置为自动回发,它会在我从下拉列表中选择一个值后立即“重置”,如果我将其设置为不回发,它仍然会检索原始值,而不是选定的值。
-
如果您启用了组合框的 LoadOnDemand,那么您应该只在服务器上使用 SelectedValue 和 Text 属性。见这篇文章:docs.telerik.com/devtools/aspnet-ajax/controls/combobox/…
-
为了更好地理解您的问题,请在您的帖子中包含您的 ASPX 标记。
-
@VeselinVasilev 谢谢你的回复......对不起,我今天被转移了。我编辑了我的原始帖子以添加我的标记的相关部分。正如我试图解释的那样,无论我尝试什么,我都无法阅读所选文本。我尝试过是否使组合框自动回发,按需加载,尝试在 selecteditemchanged 事件中捕获它(这似乎根本没有触发)。我已经尝试了十几种不同的方法,但一无所获......我将非常感谢任何建议!谢谢!