![](/img/trans.png)
[英]How to lookup all rows in an SQL database that have a certain Boolean column value of true in asp.net?
[英]Pass all rows from grid that have certain value in a specific column
我有一個名為sampleGrid的Ext GridPanel,其中有一些列。 其中一個名為IsAssigned,具有bool值 。
我有一個分機按鈕。 當我單擊它時,我要傳遞具有IsAssigned列值false的所有行。
我可以通過所有網格行,
參見下面的代碼示例,
<ext:Button ID="btnSave" runat="server" Text="Save"
Icon="Accept">
<DirectEvents>
<Click OnEvent="btnSave_Click">
<ExtraParams>
<ext:Parameter Name="rows" Value="Ext.encode(#{sampleGrid}.getRowsValues())"
Mode="Raw" ></ext:Parameter>
</ExtraParams>
</Click>
</DirectEvents>
</ext:Button>
這里Ext.encode(#{sampleGrid} .getRowsValues())將傳遞所有行。 但是我只想傳遞IsAssigned列值為false的行。
isAssigned列代碼:
<ext:CheckColumn ColumnID="chkSelect" DataIndex="IsAssigned" MenuDisabled="true"
Sortable="true" Width="30px" Editable="true">
</ext:CheckColumn>
任何幫助將不勝感激。
我不確定這是否是最佳解決方案,請嘗試一下。
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script>
function Test() {
var jsondata = Ext.encode(App.grd.getRowsValues());
alert("{dt:" + jsondata + "}");
var mynewitems = {};
var myobj = JSON.parse('{"dt":' + jsondata +'}');
for (var i = 0; i < myobj.dt.length; i++) {
alert(myobj.dt[i].data2);
if (myobj.dt[i].data2 == true) { myobj.dt.splice(i, 1); }
}
alert(myobj);
return myobj;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<ext:ResourceManager runat="server"></ext:ResourceManager>
<ext:Button ID="btnSave" runat="server" Text="Save"
Icon="Accept">
<DirectEvents>
<Click OnEvent="btnSave_Click">
<ExtraParams>
<ext:Parameter Name="rows" Value="Test()"
Mode="Raw" ></ext:Parameter>
</ExtraParams>
</Click>
</DirectEvents>
</ext:Button>
<ext:GridPanel runat="server" ID="grd" Height="300" Layout="FitLayout">
<Store>
<ext:Store ID="Store1" runat="server">
<Model>
<ext:Model ID="Model1" runat="server">
<Fields>
<ext:ModelField Name="data0"></ext:ModelField>
<ext:ModelField Name="data1"></ext:ModelField>
<ext:ModelField Name="data2"></ext:ModelField>
</Fields>
</ext:Model>
</Model>
</ext:Store>
</Store>
<ColumnModel>
<Columns>
<ext:Column ID="Column1" runat="server" DataIndex="data0" Text="data0"></ext:Column>
<ext:Column ID="Column2" runat="server" DataIndex="data1" Text="data1"></ext:Column>
<ext:CheckColumn ID="CheckColumn1" runat="server" DataIndex="data2" Text="data2"></ext:CheckColumn>
</Columns>
</ColumnModel>
</ext:GridPanel>
</form>
</body>
</html>
后面的代碼;
protected void Page_Load(object sender, EventArgs e)
{
grd.GetStore().DataSource = GetData();
grd.DataBind();
}
public void btnSave_Click(Object sender,DirectEventArgs e)
{
string js = e.ExtraParams["rows"].ToString();
X.Msg.Alert("aaa", js).Show();
}
private object[] GetData()
{
return new object[] {
new object[] { "test1", "test1", true },
new object[] { "test2", "test2", false },
new object[] { "test3", "test3", false } };
}
伙計們,我已經使用filterRecord做到了。
<ext:Parameter Name="rows" Value="Ext.encode(#{sampleGrid}.getRowsValues(
{
filterRecord : function (record) {
return (record.data.IsAssigned==false); }
})
)" Mode="Raw" >
</ext:Parameter>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.