我正在开发一个用于搜索和绑定DataGrid的应用程序。 用户将要做的是输入文本的一部分,点击搜索按钮意味着它应该从DB中获取具有类似文本框值的数据并绑定到datagrid。
但我的要求是: - 在我的表中我有3个字段,即ID,ChargeName和IorE。在我的数据网格中,我有像id,Income和Expences这样的列。我需要的是,例如: 如果我在“服务”等文本框中输入费用名称,则点击搜索意味着一旦找到 chargeName字段,就应该在费用字段中检查该名称是否应该检入 IorE字段如果值为“我”,则ChargeName应绑定到Datagrid中的收入列,如果“E”,则ChargeName应绑定到< Data.grid中的strong> Expence Column 。我正在使用LinQ,我不知道如何在LINQ中使用这样的条件
这是我的代码。
using (LQMasterChargeDataContext DB = new LQMasterChargeDataContext())
{
var Result = from C in DB.TB_MasterCharges
where C.mCHR_NUIsActive == 1 && SqlMethods.Like( C.mCHR_VCName,TxtChargeName.Text.Trim())
select new { C.mCHR_NUPKId,
Income = C.mCHR_VCName
};
dgSailing.DataSource = Result;
dgSailing.DataBind();
int Count = Result.Count();
if (Count == 0)
{
LBLEXcepceValue.BackColor = System.Drawing.Color.LightPink;
LBLEXcepceValue.Font.Bold = true;
LBLEXcepceValue.Font.Name = "Times New Roman";
LBLEXcepceValue.Font.Size = 10;
LBLEXcepceValue.Text = "NO VESSEL FOUND ! ! !";
//ScriptManager.RegisterStartupScript(this, this.GetType(), "ALERT", "alert('No Vessel found');", true);
}
我的aspx页面就像:
<asp:UpdatePanel ID="UPChargesGrid" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:DataGrid ID="dgDestination" runat="server" BorderWidth="1px" BorderColor="#FE9B00"
BorderStyle="Solid" BackColor="White" Font-Names="Verdana" Font-Size="XX-Small"
AutoGenerateColumns="False" ShowFooter="FALSE" CellPadding="3" align="center"
Width="700px" OnItemCommand="dgDestination_Select">
<Columns>
<asp:BoundColumn DataField="ID" HeaderText="mFDD_mFRD_NUPKId" Visible="False">
</asp:BoundColumn>
<asp:BoundColumn DataField="Income" HeaderText="Income"></asp:BoundColumn>
<TemplateColumn>
<ItemTemplate>
<asp:Label ID="LBLEXcepceValue" runat="server" Text='<%# Eval("Expence").ToString().Substring(0,5) %>' ></asp:Label>
</ItemTemplate>
</TemplateColumn>
<asp:TemplateColumn HeaderText="SAVE">
<ItemTemplate>
<asp:ImageButton runat="server" ID="IMGBTNSave" ImageUrl="~/AppImages/Save.gif" ToolTip="Save" CommandName="Save"
AlternateText="Save" />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle HorizontalAlign="Left" ForeColor="#000066" BackColor="White" Mode="NumericPages"></PagerStyle>
</asp:DataGrid>
</contenttemplate>
</asp:UpdatePanel>
任何人都可以帮我解决这个问题。谢谢。
我现在限制DataGrid我想要的是如果值为null然后一个用户控件应该显示并保存按钮(在datagrid中)应该是Enable.Please帮我这样做。这是我的需要代表通过图像
结果
答案 0 :(得分:1)
您可以像这样更改
var Result = from C in DB.TB_MasterCharges
where C.mCHR_NUIsActive == 1 && SqlMethods.Like( C.mCHR_VCName,TxtChargeName.Text.Trim())
select new { C.mCHR_NUPKId,
Income = C.IorE == "I" ? C.mCHR_VCName : string.Empty,
Expense = C.IorE == "E" ? C.mCHR_VCName : string.Empty
};
然后您可以使用绑定列来支付费用,如下所示
<asp:BoundColumn DataField="Expense" HeaderText="Expense"></asp:BoundColumn>
<强>更新强> 我希望我能正确理解你的问题。您可以使用下面的代码切换控件的可见性
<TemplateColumn>
<ItemTemplate>
<asp:Label ID="LBLEXcepceValue" runat="server" Text='<%# Eval("Expence") %>'
Visible='<%# Eval("Expence") != null && Eval("Expence") != string.Empty %>'
></asp:Label>
<asp:TextBox ID="textBoxExpenses" runat="server" Visible='<%# Eval("Expence") == null || Eval("Expence") == string.Empty %>'></asp:TextBox>
</ItemTemplate>
</TemplateColumn>
<asp:TemplateColumn HeaderText="SAVE">
<ItemTemplate>
<asp:ImageButton runat="server" ID="IMGBTNSave" ImageUrl="~/AppImages/Save.gif" ToolTip="Save" CommandName="Save"
Visible='<%# Eval("Expence") == null || Eval("Expence") == string.Empty %>
AlternateText="Save" />
</ItemTemplate>
</asp:TemplateColumn>